home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
fsw
/
zm302
/
zm5.man
< prev
next >
Wrap
Text File
|
1997-06-21
|
259KB
|
7,968 lines
MEASURE 5
MMLコマンド
ここではZMUSICのMMLについて解説します。
5.1. MMLの文法について
ZMUSICは基本的にはシャープ/Hudson製のOPMDRV.Xに
上位コンパチです。つまりOPMDRV.Xに存在したMMLはほぼ共通に
使用することができ、OPMDRV.X用のデータをほとんど変更無しで演奏が
可能です。
ZMUSICではMMLの小文字、大文字の区別を一切していません。
よって状況、ユーザー各位の趣味に応じて自由に使いわけが行えます。
(本節では説明の都合上、MMLを大文字で、パラメータを小文字で記述してい
ます。)
省略しても良いパラメータはその旨を記述していますがそれ以外の場合は
省略できません。また、数値パラメータは頭に'$'をつければ16進数が、'%'を
つければ2進数を設定することができます。何もつけなければ10進数とみなされます。
各コマンドの頭についている印は各音源の種類を表しています。全てのコマンドが
全ての音源に対応しているわけではないので注意してください。対応していない
デバイスに対してそのコマンドを用いると無視されます。
[FM] 内蔵FM音源パート
[ADPCM] 内蔵ADPCMパート
[MIDI] MIDI音源パート
5.2. 基本MML
ここではZMUSIC Ver.2.0以前から存在するMMLコマンドの仕様について解説します。
Ver.3.0になって機能が拡張されたものも存在します。
---------------------------------------
■音符、休符
---------------------------------------
[FM][ADPCM][MIDI] 音符
As,l,g,v
Bs,l,g,v
Cs,l,g,v
Ds,l,g,v
Es,l,g,v
Fs,l,g,v
Gs,l,g,v
・s:#,+,-
・l:1-32767
・g:1-32767
・v:0-127
ABC~Gはハ長調のラシド~ソに対応する。
・s:#,+,-
変化記号。#,+を付ければ半音上がり、-を付けると半音下がる。
!はナチュラルを表し、後述の[K.SIGN]([KEY_SIGNATURE])で調号設定を行った場合でも、
調号を無効にした音高でその音符を演奏する。
・l:1~32767
lは音長を表し、1が全音符、2が2分音符、4が4分音符...となる。
・g:1~32767
ゲートタイム。実際の消音までの時間。lと同じく1が全音符、2が2分音符、
4が4分音符...となる。
・v:0~127
ベロシティ。127が最も音圧が大きく、1が最も小さい。0は消音と見なされる。
lはマスタークロック設定コマンド'.MASTER_CLOCK'によって設定範囲が変動する。
具体的には
1≦l≦マスタークロックの値
が設定範囲となる。以下にデフォルトのマスタークロック=192のときの
音楽的音長と絶対音長との対応を示す。
音楽的音長 絶対音長 音楽的音長 絶対音長
1 192 12 16
2 96 16 12
3 64 24 8
4 48 32 6
6 32 64 3
8 24 192 1
絶対音長=int(マスタークロック/音楽的音長)。
パラメータs,l,g,vはいずれもが省略可能。
lが省略されている場合は後述のL/@Lで設定したデフォルト音長が採択される。
gが省略されている場合はlの値をもとに後述のQ/@Qで指定したゲートタイムパラメータ
をもとにゲートタイムが計算される。
vが省略された場合は後述のU/@Uで指定したデフォルトベロシティが採択される。
l及びgの前に'*'をつけると絶対音長指定になる。絶対音長とはZMUSICが処理
する音長カウンタのことでデフォルトでは全音符が192になっている。このとき例えば
C4とC*48は同時間発音される。'*'の後ろには0~37267までの数値を指定することがで
きる。
例1
a#4,2 (ステップタイムを4分音符長で、ゲートタイムが2分音符長、
ベロシティはデフォルトが採択され、A#が演奏される)
b*386,,125 (ステップ=386,ベロシティ=125でBが演奏される)
音長の後ろに'.'を設定すると付点音符と見なされる。
例2
g4. (付点4分音符)
e4..,*24. (ステップ=二重付点4分音符,ゲート=絶対音長36(=24+24*0.5)
共通コマンド.LENGTH_MODEで「ステップタイムモード」とした場合は'*'が付いてい
る、付いていないに関係無く絶対音長指定となる。
----------------------------------------
[FM][ADPCM][MIDI] 休符
Rl,g
・l:1~32767
・g:1~32767
休符。
l,gの意味については音符と同じ。省略時は音符と同じようにデフォルトパラメータが起用
される。
例
r8
r*96
休符におけるゲートタイムgは通常の音符から休符へ後述の'&'によるタイ指定が
行われた時のみ意味をなす。たとえば
c4&r4,8
とした時はc4は4分音符音長分発音し続け、休符に差し掛かる。
休符の長さは4分音符音長だがゲートタイムは8分音符に設定されているので
前の音の c の音は休符が始まってから8分音符音長後に消音されることとなる。
共通コマンド.LENGTH_MODEで「ステップタイムモード」とした場合は'*'が付いてい
る、付いていないに関係無く絶対音長指定となる。
----------------------------------------
[FM][ADPCM][MIDI] ウェイト
@Wl
・l:1~32767
指定時間、前の状態を保存する。lは音長を表し、音符や休符と役割は同じ。
l省略時はデフォルトが起用される。
例
@w*64
@w4..
休符とはゲートタイムが有るか無いかの違い。たとえば
c4&@w4
とした場合、@w4が終了してもcの音は鳴り続けてしまう。
----------------------------------------
■調号
----------------------------------------
[FM][ADPCM][MIDI] 調号
[K.SIGN k1,k2,…,kn]
・k1~kn:文字列
調号を設定する。どの音階にどの変化記号(♯,♭)がつくのかを設定する。
kn部分は変化記号、音階の順に設定し、1個ずつ , で区切る。
例
[K.SIGN +c,+d,+f,+g] (ホ長調)
cdfgに自動的に#(シャープ)がつく
[K.SIGN -a,-b,-d,-e] (変イ長調)
abdeに自動的に♭(フラット)がつく
[K.SIGN -a,+b]
aに♭(フラット)が、bに#(シャープ)が自動的につく
また以下の調名を記述することによって、一般的な調号の設定を行うこともできる。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[K.SIGN G-Major] 変ト長調(cdegabに♭)
ナチュラル記号である '!' を使用すれば一時的に調号の効力をなくすことができる。
また、調号の効力をなす音階に対してさらに#,+(#)や-(♭)が付いた場合は調号と
両方考慮した音階になる。
例
[K.SIGN G-Major] b! (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが ! のためナチュラル指定
となりbで演奏される)
[K.SIGN G-Major] b- (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが♭のためb--(=a)で 演奏される)
----------------------------------------
■オクターブ
----------------------------------------
[FM][ADPCM][MIDI] オクターブ
On
・n:-1~9
オクターブを設定する。初期値は4。nは-1~9まで設定可能。
実際の発音可能域は各デバイスによって異なる。
・FM音源
オクターブ0のD#からオクターブ8のDまで。
・ADPCM
登録しなければ発音はしないが、セレクトバンク内の(@コマンド、MEASURE6参照)
オクターブ-1のCからオクターブ9のGまで対応。
・MIDI
オクターブ-1のCからオクターブ9のGまで。実際は各楽器によって違う。
詳しくは各MIDI楽器のマニュアルのインプリメンテーション・チャートなどを
参照のこと。
----------------------------------------
[FM][ADPCM][MIDI] 相対オクターブ
<
>
オクターブを相対的に変更する。<はオクターブを+1し、>はオクターブを
-1する。設定範囲を越えた場合はエラーとなる。
----------------------------------------
■音長制御
----------------------------------------
[FM][ADPCM][MIDI] デフォルト音長設定
Ln
・n:1~32767
@Ln
・n:1~32767
デフォルト音長を設定する。音長をパラメータに持つMMLにおいて音長が省略され
た場合、この命令で設定した値がパラメータとして与えられる。
Lのパラメータnは音楽的音長、絶対音長のいずれかを書くことができる。
音楽的音長の場合はn分音符といった意味となる(設定範囲については音符MMLの
説明を参照)。絶対音長による指定は音名の時と同じように数値の前に'*'を記述して
設定できる。設定範囲は0≦n≦32767。
@Lのパラメータnは絶対音長のみで設定範囲は0≦n≦32767。
初期値はL4(=@L48)である。
L,@Lいずれの場合も音長数値の後ろに符点が設定可能。
例
l16.
@l96
l*2000.
----------------------------------------
[FM][ADPCM][MIDI] ゲートタイム設定
Qn
・n:-8~8
1音中で実際に発音している時間を音長のn/8時間単位で設定する
初期値 n=8、設定範囲は-8~8。
値が正の場合、1が発音時間がもっとも短く、8が最も長い(テヌート)。
値が負の場合はステップタイムよりもゲートタイムを長くすることができる。
たとえばq-8とするとゲートタイムはステップタイムの2倍に設定され、
q-4ならばゲートタイムはステップタイムの1.5倍に設定される。
分母の値はデフォルトでは8だが共通コマンド.GATETIME_RESOLUTIONにて
8,16,32,64,128のいずれかへ変更が可能。
例
q4 cdefg (スタッカート気味になる)
q-4 cdefg (前の音がこれから鳴る音と重なるようになる)
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
後に設定したものが有効となる。
----------------------------------------
[FM][ADPCM][MIDI] ゲートタイム設定
@Qn
・n:-32767~32767
ノートオフ(キーオフ,発音をやめること)を絶対音長でnカウント早める。
発音音長より大きい値の場合、@Qは機能せずQ8の状態で演奏される。
例えば
@Q96 C*16
の場合は発音長が 16-96<0 となるので
@Qの処理はされず発音長は16カウントとなる。
nを負値に設定した場合は絶対音長で-nカウント、ノートオフを遅らせることが
できる。たとえば
@Q-12 c*48
とするとcのゲートタイムは60(=12+48)となる。
初期値は@Q0に相当し設定範囲は-32767~32767。
@Qを設定した時はQは機能せず、逆にQを設定した時は@Qは機能しない。
後に設定したものが有効となる。
----------------------------------------
■タイ/スラー
----------------------------------------
[FM][ADPCM][MIDI] タイ/スラー
&
前後の音をつなぐ。同音高の場合は全デバイスにおいてタイとなる。
例
a4&a16.
異音名の場合は、各デバイスによって対応が異なる。
・FM音源パート
スラーとなる
例
a4&a#4 (なめらかにaからa#へつながる)
・ADPCMパート
後述のPCMモード([PCM_MODE]コマンドにより設定)によって対応が異なる。
通常モード時([PCM_MODE RHYTHM])
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
楽器PCMモード時([PCM_MODE TIMBRE])
例
a4&a#4 (なめらかにaからa#へつながる)
・MIDI
後述のタイ・モード(@Jコマンドにより設定)によって対応が異なる。
通常モード時(@J0)
'&'を除いた時のように処理される
例
a4&a#4 → a4a#4のように演奏される
FM音源部互換モード時(@J1)
スラーとなる。
例
a4&a#4 (なめらかにaからa#へつながる)
----------------------------------------
[FM][ADPCM][MIDI] 加算式タイ
^n
・n:1~
音符の直後に書くことによって、nで指定した音長分をその音符の音長に加算する。
nの後ろに符点を書けば、符点を考慮した音長が加算される。nには前に'*'を付けて
絶対音長を記述することもできる。
例
c4^16
d^*1000.
'ceg4^16'
(d2^8,e)
----------------------------------------
[MIDI] MIDIパート・タイモード
@Jn
・n:0,1
MIDI部のタイの処理モードを設定する。
n=0で通常モード(初期値)、n=1でFM音源部互換モードになる。
c&d
とした場合、通常(@J0時)はMIDIでは & のない
c d
として処理される。
一方@J1時ではFM音源部と同様に、ある音の発音後、その音の持続音(減衰音)で
つぎの音の音程へ変化するようになる。よって、FM音源部での
(c<d)&(d>c)
といった表現や、後のコラムで「動作の相違がある」と書かれている
(g,e)24&e
@b0,683 c4&c+4
のような表記もFM音源部と同様に機能するようになる(ただし、最初に発音した
音高から1オクターブを超えることはできない)。
----------------------------------------
■連符
----------------------------------------
[FM][ADPCM][MIDI] 連符
{~}n
・n:1~32767
{~}で囲まれたMML群を合計の音長がn分音符音長になるように演奏する。
nには符点を付けたり、'*'を付けて絶対音長による指定も行なえる。
{~}の中には音長を操作するMMLを書くことは出来ない。(符点,L,@Lなど)
n省略時はデフォルト音長が起用される。
例
{cdef}2
{abc}4..
{cd&de}*192
----------------------------------------
■和音
----------------------------------------
[FM][ADPCM][MIDI] 和音
'MML…'n,dly(&)
・n:1-32767
・dly:1-32767
'に囲まれた音符を同一タイミングで発音する。
'~'間に書けるMMLは以下に限られる。
音符 c~b(16個まで)
調号 # + - !
音長 1~(符点も可)
絶対音長 *1~*32767
オクターブコマンド O-1~O9
オクターブスイッチ < >
1度に16和音まで発音が可能。16音以上音階を書くとエラーとなる。
音長は'~'内で最後に設定されたものが和音の音長として採用される。
オクターブコマンド、オクターブスイッチは'~'(シングルコーテーション)内だけ
有効。
'~'内に音長を書かずに外に数値nを書くと、これは'*'を付ける付けないに変わらず
絶対音長の指定になる。この場合の設定範囲は0≦n≦32767で全音符以上の発音時間も
設定できる。
ディレイパラメータdlyを設定することによって、和音を一度に発音せず、各音を
絶対音長dlyずつ時間的にずらして1音ずつ発声する(アルペジオ奏法)。
ディレイは初期値0で、省略可能だが省略時は以前設定した値がそのまま起用される。
例
'c4eg'
ドミソを4分音符で演奏する。
o4'gb<d'96
ソシレを絶対音長96で演奏する。和音発音後のデフォルトオクターブは4に
変わり無いことに注意。
'c4eg<c',6
まずcが発音され、その6カウント後にeが発音され、更に6カウント後ずつ
g, <cが発音される。
ディレイ値は必ず全部の音が発声可能な値でなければエラーとなる。
例えば
'c4eg',30
などはgが発音出来ないのでエラーとなる。
同構成音の和音~和音間、異構成音の和音~和音間、単音~和音間、和音~単音間を
'&'で結んでのタイ/スラーが可能。ただし処理の関係上、タイでつながれた和音の
ディレイは強制的に0に設定される。つまり
'c4eg',6&'e4gb-',6
は
'c4eg',6&'e4gb-',0
として処理される。
また、オートベンドやモジュレーション、アフタータッチ・シーケンス、ARCCなど
全ての特殊コマンドが和音においても有効である。もちろん同時にこれらを和音に対して
使用出来る。
FM音源部での和音を用いた場合、チャンネルが競合すると正常に発音されないので
注意。例えば
.assign TR1,FM1
.assign TR2,FM2
.assign TR3,FM3
.track1 'ceg'48
.track2 b- ←正常に演奏されない
.track3 f+ ←正常に演奏されない
のような場合、.track1から発音する'ceg'48の和音はFM音源チャンネル1,2,3が使用さ
れるが、.track2と.track3がこのときそれぞれ b-とf+をチャンネル2,3で演奏している
ためにチャンネルの競合が発生している。この場合、トラック1の和音を正常に発音さ
せるには
.assign TR1,FM1
.assign TR2,FM4
.assign TR3,FM5
.track1 'ceg'48
.track2 b- ←正常に演奏されない
.track3 f+ ←正常に演奏されない
のようにしてチャンネル2,3をあけるようにしなければならない。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 絶対音長0 ┃
┃ ┃
┃ ┃
┃ ZMUSICでは休符、ウェイト、和音とポルタメントを除いて、絶対音長0 ┃
┃ ┃
┃も使用可能になっています(音楽的音長0は使用不可)。音長がゼロの ┃
┃ ┃
┃音符は発音処理を行うだけです。操作対象デバイスによって多少の効果の相違が ┃
┃ ┃
┃ありますので注意して下さい。 ┃
┃ ┃
┃●MIDI ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃ではcegの和音が鳴りっぱなしになります。 ┃
┃ ┃
┃ MIDI楽器のでリズムパートを持つものは、大抵、ノートオンのメッセージ ┃
┃ ┃
┃のみで演奏可能です(ノートオフの処理を省略しても演奏に影響しない)。 ┃
┃ ┃
┃こういったリズムパートをシーケンスする場合に絶対音長0は有用です。 ┃
┃ ┃
┃ たとえばO2C=バスドラム, O2D=スネアドラム, O3C+=クラッシュシンバルの ┃
┃ ┃
┃ような ローランド系リズムキットで ┃
┃ ┃
┃ L4 o3c+*0 |:4 o2 cdcd :| ┃
┃ ┃
┃とすると、最初の小節の頭だけシンバルが鳴り、2回目以降は鳴らないといった ┃
┃ ┃
┃シーケンスができます。 ┃
┃ ┃
┃ 絶対音長0の音符は楽器の最大同時発声数内で1トラックにつきいくつでも ┃
┃ ┃
┃設定可能です。 ┃
┃ ┃
┃ 絶対音長0の音符はそのままでは鳴りっぱなし状態になりますが、これを ┃
┃ ┃
┃('&'をつけて)タイで通常音符へつなぐとその通常音符が鳴り終わった時点で ┃
┃ ┃
┃絶対音長0の音もノートオフすることができます。 ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃とするとcegの和音が4分音符長で鳴ります。 ┃
┃ ┃
┃ この'&'で結ぶ書式では最大16和音までが記述できます。16和音の時は ┃
┃ ┃
┃音長ゼロの音符が15個と通常音長の音符が1つという構成になることになります。 ┃
┃ ┃
┃音長ゼロの音符を15個以上記述した場合は古い順にノートオフされない音が出て ┃
┃ ┃
┃きます。また、従来の和音コマンドとの混在は可能であるため、状況状況に応じて ┃
┃ ┃
┃使い分けができます。また、この2種類の和音書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃●FM音源/ADPCM音源 ┃
┃ ┃
┃ 基本的にモノフォニックですので ┃
┃ ┃
┃ c*0e*0g*0 ┃
┃ ┃
┃のような表記で和音を発音させることはできません。ただし、[VOICE_RESERVE]命令 ┃
┃ ┃
┃でそのトラック内で複数の発音を宣言した場合には、その範囲内で複数音の発音が ┃
┃ ┃
┃可能になります。その場合は、MIDIパートと同じように ┃
┃ ┃
┃ c*0&e*0&g4 ┃
┃ ┃
┃ v10c*0& v12e*0& v11g4 ┃
┃ ┃
┃のような記述で和音の発音が可能です。従来の和音コマンドとの混在もでき、この ┃
┃ ┃
┃2つの書式間のタイ/スラーも可能です。 ┃
┃ ┃
┃ ADPCM音源の場合はMPCM.Xが組み込まれている場合にのみ,以上の動作が保証されま┃
┃ ┃
┃す。組み込まれていない時は完全に単声仕様になります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■音量/ベロシティ
----------------------------------------
[FM][ADPCM][MIDI] 音量
Vn
・n:0-16
音量の設定を行う。設定範囲は0≦n≦16。初期値は8。
数値が大きいほど音量が大きくなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
V11 cde
----------------------------------------
[FM][ADPCM][MIDI] 音量
@Vn
・n:0-127
音量の設定を細かく行う(絶対音量と呼ぶ)。設定範囲は0≦n≦127。
初期値はMIDI,ADPCMで64、FM音源では106。数値が大きいほど音量が大きくなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@v100 c
----------------------------------------
[FM][ADPCM][MIDI] 相対音量
_n
 ̄n
・n:0-127
音量の相対指定を行う。~は音量増加を表し、_は音量減少を表す。設定範囲は
0≦n≦127で、演算の結果、アンダーフローを起こした場合は0へ、オバーフローを
起こした場合は127へ修正される。また計算は@Vnで表される絶対音量レベルで
行われる。
nを省略した場合は以前に設定したものが起用される。nの初期値は1。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@v120 _10 c _ d ~ e (cは@120-10=@v110で、dは@v110-10=@v100で、
eは@v100+10=@v110で演奏される)
|:10 _10 c :| (段々と音量が下がりながらcが演奏される)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Vと@V ┃
┃ ┃
┃ ┃
┃ FM音源とADPCM(MPCM組み込み時)、MIDI音源では@VとVの対応関係が ┃
┃ ┃
┃異なります。これはFM音源の出力音量が指数関数的に増減するのに対してMIDI┃
┃ ┃
┃とADPCM音源では線形に増減するからです。以下に音源別にに@VとVの対応表┃
┃ ┃
┃を示します。 ┃
┃ ┃
┃ FM音源 ┃
┃ ┃
┃ Vn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ┃
┃ @Vn 85 87 90 93 95 98 101 103 106 109 111 114 117 119 122 125 127 ┃
┃ ┃
┃ ┃
┃ ┃
┃ MIDI音源,ADPCM音源 ┃
┃ ┃
┃ Vn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ┃
┃ @Vn 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 127 ┃
┃ ┃
┃ ┃
┃ 以上のことから相対ボリューム_n ~nの使用結果においても結果が異なります。 ┃
┃ ┃
┃例えば ┃
┃ ┃
┃ v8 _1 ┃
┃ ┃
┃とした場合FM音源パートでは結果が@V105(=106-1)に相当しますが、MIDIパー ┃
┃ ┃
┃トでは@V63(=64-1)になります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][ADPCM][MIDI] ベロシティ
@Un
Un
・n:0-127
ベロシティの設定を行う。ベロシティとは鍵盤を押す強さ、すなわち音量に相当する。
MIDI楽器によってはこれによって音のニュアンスを変えることが出来る。
設定範囲は0≦n≦127。数値が大きいほど音量が大きくなる。
FM音源パート,ADPCM音源パートでは@Vと同じに扱われる。
初期値はMIDIパートのみ127で、FM音源,ADPCM音源では@Vの初期値と同じ。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] 相対ベロシティ
@U±n
U±n
・n:-127~+127
ベロシティの相対指定を行う。設定範囲は-127≦n≦+127。演算によって
アンダーフローを起こした場合は0、オーバーフローを起こした場合は127に
修正される。
初期値は+1。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127c @u-10d @u+5e
u127c u-10d u+5e
(c, d, eはそれぞれベロシティ127, 117, 122で発音する。)
----------------------------------------
[FM][ADPCM][MIDI] 相対ベロシティ再設定
@U
以前設定した@U相対ベロシティを再び実行する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127 c @u-10 d @u e
(最後の@uもまた@u-10で機能するため e は@U107(=127-10-10)で発音する。)
----------------------------------------
[FM][ADPCM][MIDI] ベロシティ再設定
U
以前設定した@Uの値を再設定する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例
@u127 c u-10 d u e (c,d,eがそれぞれベロシティ127, 117, 127で発音する)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ベロシティのはたらきについて ┃
┃ ┃
┃ FM音源パートとADPCM音源パートではベロシティと音量が全く同じ機能として ┃
┃ ┃
┃取り扱われます。例えば、FM音源パートで ┃
┃ ┃
┃ V8 @U106 @V106 ┃
┃ ┃
┃は同じ機能を果たします。 ┃
┃ ┃
┃ MIDI音源パートでは発音音量はベロシティと音量の2つの関係で決定されます。 ┃
┃ ┃
┃ベロシティと音量を、ともに最大値を設定した時、最大音量となります。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Uと@U ┃
┃ ┃
┃ ┃
┃ 機能的にはまったく同じですが、演奏時にリアルタイムに考慮されるか否かの ┃
┃ ┃
┃相違があります。 ┃
┃ ┃
┃ @u100|:4 @u+5 c :| ┃
┃ ┃
┃としたとき4回とも@u105でcが演奏されますが ┃
┃ ┃
┃ @u100|:4 u+5 c :| ┃
┃ ┃
┃としたときは@u105, @u110, @u115, @u120でそれぞれ演奏されます。 ┃
┃ ┃
┃ なお、管理は@uとuはまったく別です。ですから ┃
┃ ┃
┃ @u5 |:3 @u+50 c u-5:| d ┃
┃ ┃
┃としたとき@u55で3回cが演奏され@u50でdが演奏されます。 ┃
┃ ┃
┃ uのみの指定は、それまでに最後に設定した@uをもう1回設定するので ┃
┃ ┃
┃ @u110|:10 u-2 c :|u e ┃
┃ ┃
┃のように、ループで変化してしまったベロシティを元に戻すことが出来ます。 ┃
┃ ┃
┃この例では、直前のベロシティ値によらずeは@u110で演奏されます。 ┃
┃ ┃
┃ ただし ┃
┃ ┃
┃ @u110 c @u-2 d u e ┃
┃ ┃
┃のように、@U相対ベロシティを使用した場合は@Uの値自体が変化してしまうので、 ┃
┃ ┃
┃Uのみの設定は余り意味を持たなくなります。この例ならば e は d と同じく ┃
┃ ┃
┃@U108(110-2)で演奏されます。 ┃
┃ ┃
┃ このようにU,@Uを使い分ければ、複雑で高度なシーケンスをすることが出来ます。┃
┃ ┃
┃ @uは、ループなどの影響を受けない大局的な設定、uはループ等の影響を受ける ┃
┃ ┃
┃局所的な設定というわけです。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][ADPCM][MIDI] ベロシティ・シーケンス
Zn1,…,n128
・ni:0~127
ベロシティのばらつきを設定する。これをZMUSICでは
ベロシティー・シーケンスと呼ぶ。各値の設定範囲は0≦ni≦127。
これは最大128個の音符MML、和音MML、ポルタメントMMLの
ベロシティを先に設定するものである。
例えば
z127,99,80 cdefg
とするとcはベロシティ127で、dはベロシティ99で、eはベロシティ80で、
ここでfは再びベロシティ127で、gはベロシティ99で発音される。
値は最大128個まで記述することができ、1個のみ指定した時は@Uと全く同様に
機能する。数値の頭に±を記述すれば相対指定が可能である。
数値を全く書かずに'Z'のみ記述するとベロシティ・シーケンスのOFFと解釈される。
また、ベロシティコマンド@U/Uを使用してもベロシティ・シーケンスは解除される。
ベロシティ・シーケンスはループコマンドを無視して処理されるので
z99,100,127 |:100 c :| d e
とした場合cが100回ベロシティ99で、ループ外のdがベロシティ100で、
eがベロシティ127で演奏される。
FM音源では音量とベロシティが同義に扱われるので、設定された値に対応した
絶対音量で発音されることになる。
MIDIパートでは、楽器によってはベロシティの変化にともなって音色の
ニュアンスや音色を切り変えることが出来るのでそういった機能と合わせて
使えばかなり興味深い効果を得ることができる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
■キートランスポーズ/ディチューン/オートベンド
----------------------------------------
[FM][ADPCM][MIDI] キートランスポーズ
Kn
・n:-127~127
音程を半音単位で上下させる(キートランスポーズ)。nはn半音を意味し、
設定範囲は-127≦n≦127(±10オクターブ程度に相当)。
初期値は0、またニュートラル(中央値)も0である。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] ディチューン
@Kn
・n:-7680~+7680
キートランスポーズを1/64半音単位で行う(いわゆるディチューン)。
設定可能範囲は-7680≦n≦7680(±10オクターブ程度に相当)。
初期値は0、またニュートラルも0である。
Kと@Kは全く管理が別である。例えば
@k10 cdefg
の頭に k1 をつけて
k1 @k10 cdefg
としたとすると1半音と10/64半音上にピッチシフトされてcdefgが演奏される。
いちいちMMLを書き直すこと無く各パートのMMLの頭にKコマンドを書くだけで
ディチューン等も考慮した転調が実現出来る。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] ディチューン
@Bn
・n:-8192~+8191
ベンド値(ディチューン)を設定する。@Kと全く同じ機能をすると考えて良いが
1オクターブ≒8192で換算される点が違う。ユーザーがMIDI音源に
慣れている場合は@Bを、FM音源に慣れている場合は@Kを使うと良い。
設定範囲は-8192≦n≦8191で、初期値は0、ニュートラルも0である。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] オートベンド
@Kn1,n2,dly,bnd
・n1:-7680~+7680 開始ディチューン値(64:半音)
・n2:-7680~+7680 終端ディチューン値(64:半音)
・dly:0~32767 遅延時間
・bnd:-32767~+32767 (正)変化所用時間,(負)継続時間,(0)いずれも設定しない
@Kの後ろに2つ以上のパラメータを書くとオートベンドの設定となる。
オートベンドとはディチューンを一定時間内になめらかに変化指せる表現方法のこと。
n1はベンド開始ディチューン値
n2はベンド終了ディチューン値、
dlyはディレイ値でベンドの開始までの遅延時間に相当する。
bndは正値の場合は変化にかける時間を表す。負値の場合でベンドを完了してどの
くらいの時間、ベンド終了ディチューンを継続するかを設定する。0にするとディレイ
以後、発音する音符の音長のすべてを使ってベンド終了ディチューンまで変化する設定
となる。
dlyとbndは省略可能。省略時は以前の設定値が起用される。
初期値はn1,n2,dly,bndともに0である。
@Kおよび@Bにてディチューンを設定した場合はオートベンドは以降、強制的に
OFFとなる。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
例) (ベンドレンジ(*1)が1オクターブになっている場合)
@k0,-64,24 c1
発音後、24カウント後から音程が下がり始めキーオフまでに半音(64=1半音)下がる。
@k0,128,12,24 c*64
では発音後12カウント後音程が上がり始め、ここから24カウントで目的の音高に
たどり着き、28(64-12-24)カウント分、+128の音高を保ち続ける。
(*1)ベンドレンジはFMは1オクターブ(12半音)に固定、MIDIは後述の
@Gコマンドで変更可能である。
----------------------------------------
[FM][ADPCM][MIDI] オートベンド
@Bn1,n2,dly,bnd
・n1:-8192~+8191 開始ディチューン値(半音≒683)
・n2:-8192~+8191 終端ディチューン値(半音≒683)
・dly:0~32767 遅延時間
・bnd:-32767~+32767 (正)変化所用時間,(負)継続時間,(0)いずれも設定しない
@Bの後ろに2つ以上のパラメータを書くとオートベンドの設定となる。
パラメータn1,n2の変化レートが異なるだけで機能自体は @Kn1,n2,dly,bndと同じ。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
[FM][ADPCM][MIDI] ポルタメント
(k1,k2)n,dly,prt
[k1,k2]n,dly,prt
・k1:c,d,e,f,g,a,b ポルタメント開始音階
・k2:c,d,e,f,g,a,b ポルタメント終了音階
・n:1~32767 絶対音長
・dly:0~32767 遅延時間
・prt:-32767~+32767 (正)変化所用時間,(負)継続時間,(0)いずれも設定しない
ポルタメントを行う。
k1はポルタメント開始音階MML。
k2はポルタメント終了音階MML。
この他、以下のMMLを(),[]内に記述できる。
調号 # + - !
音長 1~(符点も可)
絶対音長 *1~*32767
オクターブコマンド O-1~O9
オクターブスイッチ < >
和音コマンドとは違いオクターブスイッチは(~),[~]外へも影響する。
音長は(~),[~]の外に絶対音長で書くこともできる。外に書いた場合は'*'を付ける
付けないに関わらず絶対音長とみなされる。絶対音長指定ではnは0≦n≦32767まで
設定可能なので全音符以上の発音時間を設定することもできる。
音長は省略するとデフォルトの音長(Lまたは@Lコマンドで指定したもの)が起用
される。
dlyはディレイで絶対音長単位でポルタメントが始まるまでの遅延時間を設定する
ことができる。設定可能範囲は0≦dly≦32767。dlyは省略すると以前の設定値が起用
される。
prtは正値の場合はポルタメントにかける時間を表す。負値の場合はポルタメントを
完了してからどのくらいの時間、終了音高を継続させるかの設定となる。0にすると
ディレイ以後、発音する音符の音長のすべてを使って目的の音高までポルタメントを
実行する。
dlyとprtはともに省略可能。省略時は以前の設定値が起用される。
MIDI楽器において、後述の@Gコマンドでベンドレンジを12(1オクターブ)以外に
変更したとき、あるいはMIDI楽器のベンドレンジが12に設定されていない時の
動作は表記通りにならない。
例1
o4(g2<g)
o4[g2<g]
オクターブ4のgで発音し、2分音符分鳴り終えるまでにオクターブ5のgまで
なめらかに音程を変化させていく。コマンド終了後はデフォルトオクターブは
5になっていることに注意。
例2
(o3d*96,e),48
[o3d*96,e],48
オクターブ3のdで発音し、このピッチで48カウント分演奏し、それ以降
絶対音長96で消音するまでにオクターブ3のeまで音程をシフトしていく。
例3
(o3eo4d)48,24,-8
[o3eo4d]48,24,-8
オクターブ3のeで発音し、24カウント分、元の音高を持続し、
16カウント(=48-24-8)の時間内でオクターブ4のdまでポルタメントする。
そしてオクターブ4のdの音高を8カウント分保持して消音する。
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 2つのポルタメントコマンド(~),[~]の相違点 ┃
┃ ┃
┃ ┃
┃ ZMUSIC Ver.3.0から新設された[~]によるポルタメントはMIDIパートのみで ┃
┃ ┃
┃その違いが現れます。FM音源やADPCMパートではまったく同機能として働きます。 ┃
┃ ┃
┃ これに対してMIDIパートでは、ある音程から目的の音程へ変化させる場合、 ┃
┃ ┃
┃始まりの音程を基準にするか、目的の音程を基準にするかを選ぶことが出来ます。 ┃
┃ ┃
┃たとえば ┃
┃ ┃
┃ (c,e) ┃
┃ [c,e] ┃
┃ ┃
┃というようなドからミへのポルタメントを考えた場合をみてみます。 ┃
┃ ┃
┃ 前者(c,e)ではcを発音後、これの音程を徐々に上げていき、目的のeの音程に ┃
┃ ┃
┃達した時を処理を止めます。つまりeの音はcの音を3度上げた音なのです。これを ┃
┃ ┃
┃分解して表記すると(半音≒683とする) ┃
┃ ┃
┃ @b0c& .... @b2732c ┃
┃ ┃
┃のようになります。 ┃
┃ ┃
┃ これに対して後者[c,e]は、目的の音程eを3度下げたcの音程で発音し、 ┃
┃ ┃
┃音程を上げてe本来の音程に達すると処理を停止します。こちらは ┃
┃ ┃
┃分解して表記すると(半音≒683とする) ┃
┃ ┃
┃ @b-2732e& .... @b0e ┃
┃ ┃
┃のようになります。 ┃
┃ ┃
┃ これらになんの違いがあるかは楽器の性質に依存します。たとえばPCM系の ┃
┃ ┃
┃音源の場合は、サンプリングしたベースノートの音高付近がもっともリアルに ┃
┃ ┃
┃聴こえますのでポルタメント前後でもっとも長くならす音程がベースノートに ┃
┃ ┃
┃近くなるようにする、などの細かい工夫が行えます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[MIDI] ベンドレンジ変更
@Gn
・n:0-127
ベンドレンジの設定を行う。nの有効範囲はMIDI楽器によって異なる。
また、外部からベンドレンジを操作出来ないものや、プログラムチェンジ
(音色切り換え)時に初期化されてしまうものなどがあるので、手持ちの楽器の
マニュアルをよく読み、仕様を理解してからの使用をお勧めする。ベンドレンジ
を変更すればオートベンドコマンドを用いて1オクターブ以上のベンドを行うことも
できるが、ポルタメントの効果も変化してくるので注意すること。
初期値はn=12を設定しているが楽器側がベンドレンジを変更出来ないものであれば
不定である。
FM音源パートやADPCM音源パートでは常に12に固定である。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ オートベンドとポルタメント ┃
┃ ┃
┃ ┃
┃ オートベンドとポルタメントの具体例と両コマンドの対象デバイスにおける ┃
┃ ┃
┃効果の相違点について少し解説します。 ┃
┃ ┃
┃ (c+4<<c+),8 ┃
┃ ┃
┃はc+をディレイで指定した8カウント分演奏した後、4分音符-8カウントの時間内に┃
┃ ┃
┃2オクターブ上のc+まで上昇します。オクターブスイッチの影響で以降2オクターブ┃
┃ ┃
┃上になることに注意してください。 ┃
┃ ┃
┃ (g,e)24&e ┃
┃ ┃
┃は絶対カウント24の時間内にgからeへピッチダウンを行いキーオフせずeへ ┃
┃ ┃
┃つなぐことになります。 ┃
┃ ┃
┃ ここで注意が1つあります。以上2つの例はFM音源においてのみ有効です。 ┃
┃ ┃
┃ 1つ目が実現不可能なのは、MIDIでは楽器側のベンドレンジが1オクターブと┃
┃ ┃
┃想定して処理しているため1オクターブを超えたポルタメントは不可能だからです。┃
┃ ┃
┃ 内蔵FM音源は音程がリニアな構造をしているため発音可能範囲内であれば ┃
┃ ┃
┃任意の音程を出力可能ですがMIDIにおいてはポルタメントは(オートベンドも) ┃
┃ ┃
┃ベンダーホイールの上げ下げでピッチをコントロールしているため2つ目の例を ┃
┃ ┃
┃MIDIに対して行うとFMとは違った動作を示してしまいます。2つ目の例を ┃
┃ ┃
┃FMと同じ効果をMIDIで実現したい場合は ┃
┃ ┃
┃ (g,e)24&g ┃
┃ ┃
┃ということになります。つまりMIDIにおいてのタイはキーオフせず、 ┃
┃ ┃
┃ベンダー値を以前のまま保持する事を意味しているのです。同様に ┃
┃ ┃
┃ o4 (c<c)&c ┃
┃ ┃
┃はFM音源ではo4のcから1オクターブ上のo5のcへポルタメントを実行し ┃
┃ ┃
┃o5のcへ音をつなぐ事が出来ますがこれと同じ事をMIDIで実現するためには ┃
┃ ┃
┃ o4 (c<c)&>c ┃
┃ ┃
┃あるいは ┃
┃ ┃
┃ o4 (c<c)&o4c ┃
┃ ┃
┃としなければなりません。MIDIの場合は発音後どれくらいベンダーホイールを ┃
┃ ┃
┃動かしたかで音程をコントロールするのでタイの場合はポルタメントの開始音程を ┃
┃ ┃
┃書かなければならないのです。 ┃
┃ ┃
┃ このような相違点はオートベンドコマンドにも見られます。 ┃
┃ ┃
┃ @b0,683,0 c4 (683≒8192/12≒1半音) ┃
┃ ┃
┃ではFM音源ではc4がc+4へ向かって上昇しますがc+4を持続したい場合は ┃
┃ ┃
┃FMの場合は ┃
┃ ┃
┃ @b0,683,0 c4&c+4 ┃
┃ ┃
┃とすれば良いのですがMIDIの場合は ┃
┃ ┃
┃ @b0,683,0 c4&c4 ┃
┃ ┃
┃としなければならないわけです。 ┃
┃ ┃
┃ ところがMIDIパートも前述のタイモード設定命令@Jで@J1としてFM音源互換モード ┃
┃ ┃
┃に設定すればMIDIパートでもまったくFM音源と同じ感覚で使用することが出来ます。┃
┃ ┃
┃ ┃
┃ オートベンド、ホルタメント共にQコマンドの影響を受ける点にも注意して ┃
┃ ┃
┃ください。例えば ┃
┃ ┃
┃ q4 (b-<b-) ┃
┃ ┃
┃とした場合は1オクターブ上のb-に達する前にキーオフしてしまいます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■パンポット
----------------------------------------
[FM][ADPCM][MIDI] パンポット
Pn
・n:0~3
パンポットの設定を行う。設定範囲は0≦n≦3。初期値は3。
0は出力停止、1は左、2は右、3は中央。
FM音源ではP0はミュートに相当するがMIDIではこれに対応する機能がないので
便宜上@V0 @U0を行う。通常はMIDIではP0は用いないこと。
例
P1 cde P2 fga P3 b (cdeが左から,fgaが右から,bが中央から演奏される)
----------------------------------------
[FM][ADPCM][MIDI] パンポット
@Pn
・n:0~127
パンポットを多段階指定する。一応MIDI専用だがFM/ADPCMに
設定した場合は値に応じて3段階の左/中央/右に変換される。
設定範囲は0≦n≦127であるがMIDI楽器によっては無効となる場合がある
(M1,SY77など)ため各MIDI楽器のマニュアルでパンポットが可変かどうか
確認すること。
----------------------------------------
[FM][ADPCM][MIDI] 相対パンポット
@P±n
・n:-127~+127
パンポット(@P)を相対的に設定する。設定範囲は-127≦n≦+127で、演算の結果、
アンダーフローを起こした場合は0へ、オーバーフローを起こした場合は127へ
修正される。
例
@p64|:10 @p+5 c16 :| (音が中央からだんだん右へ鳴るようになっていく)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ パンポット ┃
┃ ┃
┃ ┃
┃ ローランドMT-32系(CM32L,CM32P,CM64L,CM500)の ┃
┃ ┃
┃パンポットは実はMIDI規格とは正反対の値で音場が切り換わります。 ┃
┃ ┃
┃よってP1,P2,P3はそれぞれMT32系においてはR,M,Lと音場が切り換わります。┃
┃ ┃
┃ ZMUSICはMIDI規格にしたがって左を@P0、中央を@P64、右を ┃
┃ ┃
┃@P127としています。 ┃
┃ ┃
┃ FM音源やその他のMIDI楽器と同じ音場を得るためにMT32系をご使用の ┃
┃ ┃
┃方は背面のアウトプットを左右入れ換えて接続することをお勧めします。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■テンポ
----------------------------------------
[FM][ADPCM][MIDI] テンポ
Tn
・n:1~32767
テンポを設定する。設定範囲は使用タイマーやマスタークロックの値により
変動する。
nは1分間の4分音符の数に相当する。
初期値は120。1つのトラックで指定すると全トラックに影響する。
----------------------------------------
[FM][ADPCM][MIDI] 相対テンポ
T±n
・n:-32768~32767
テンポを相対的に設定する。演算の結果有効範囲を超えてしまった場合は
設定可能範囲内に自動修正される。
1つのトラックで指定すると全トラックに影響する。
----------------------------------------
[FM][ADPCM][MIDI] タイマ設定
@Tn
・n:0~16383
割り込み周期を割り込みタイマーへ直接設定する。機能的にはTコマンドと
同じだがパラメータnが割り込み周期である点が違う。通常の音楽制作では使用
しない。
以下に各タイマーとテンポの相関を表す。(マスタークロック=192の時)
タイマA=1024-(78125/テンポ)
タイマB=256-(78125/テンポ)/16
MIDIタイマ=30,000,000/(192*テンポ)
1つのトラックで指定すると全トラックに影響する。
----------------------------------------
[FM][ADPCM][MIDI] 相対タイマ設定
@T±n
・n:-32768~32767
タイマー値を相対的に設定する。@T同様通常の音楽制作には用いない。
演算の結果有効範囲を超えてしまった場合は設定可能範囲内に自動修正される。
1つのトラックで指定すると全トラックに影響する。
----------------------------------------
■音色/バンク切り換え
----------------------------------------
[FM][ADPCM][MIDI] 音色切り換え
@n 音色番号
・n:1~32768
音色を音色番号nに設定する。初期値なし。
MIDIでは129以上の値を設定すると音色バンク切り換えのメッセージも同時に
送出される。
バンク上位値=((n >> 14).and.$7f)
バンク下位値=((n >> 7).and.$7f)
----------------------------------------
[FM][ADPCM][MIDI] 音色切り換え
@n1,n2
・n1:0~16383(255) バンク番号
・n2:1~128 音色番号
音色を、バンクn1,音色番号n2に設定する。初期値なし。
FM音源、ADPCM音源パートのバンクは0-255が有効範囲。
MIDIでは音色バンク切り換えのメッセージも同時に送出される。
バンク上位値=((n1 >> 7).and.$7f)
バンク下位値=(n1.and.$7f)
----------------------------------------
[FM][ADPCM][MIDI] 音色切り換え
@n1:n2,n3
・n1:0~127 バンク上位
・n2:0~127 バンク下位
・n3:1~128 音色番号
音色を、バンクn1:n2,音色番号n3に設定する。初期値なし。
FM音源、ADPCM音源パートのバンクはn1*128+n2で与えられる。
MIDIでは音色バンク切り換えのメッセージをn1を上位バンク値として、
n2を下位バンク値として送出する。
----------------------------------------
[FM][ADPCM][MIDI] バンク切り換え
In1,n2
・n1:0~127 バンク上位
・n2:0~127 バンク下位
音色のバンク切り換えを行う。
KORGのWAVESTATION、ROLANDのGS音源などでは音色がバンク毎に分かれており、
音色切り換えはこの命令でバンクを指定してから行う。同一バンク内で切り換えを
行う場合は一度設定すれば以降設定する必要はない。
n1はバンク番号上位、n2はバンク番号下位を表す。パラメータは省略すると
強制的に0になる。
GS音源ではバンク切り換えパラメータの上位のみ有効としているので
In1
のみでバンク(GS音源ではバリエーションと呼んでいるが)n1へ切り換える
ことが出来る。
WAVESTATIONではバンク切り換えパラメータの下位のみ有効としているので
I0,n2
でバンクn2へ切り換えることが出来る。
例
i0 @128
i0,12 @11
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FM音源,ADPCM音源パートのバンク ┃
┃ ┃
┃ FM音源パートの音色はリニアに1~32768まで存在しこれらを直接任意の音色に ┃
┃ ┃
┃切り換えることができる。しかし、MIDIパートと同じように音色番号を1~128 ┃
┃ ┃
┃までとし、これらが0~255のバンクに分かれていると想定して取り扱うことも可能 ┃
┃ ┃
┃である。たとえば ┃
┃ ┃
┃ @221 ┃
┃ ┃
┃はユーザの好み次第で ┃
┃ ┃
┃ i0,1 @93 ┃
┃ ┃
┃とすることもできる。(0*16384+1*128+93=221) ┃
┃ ┃
┃ ADPCM音源パートの場合は後述の[PCM_MODE]の設定に寄って扱いが多少異なる。 ┃
┃ ┃
┃[PCM_MODE TIMBRE]の時はFM音源/MIDIパートと同じで0~255のバンク、1~128の ┃
┃ ┃
┃音色番号で管理することが出来ます。 ┃
┃ ┃
┃ 一方[PCM_MODE TONE]ではバンクの設定はバンクという概念はなく、音色番号 ┃
┃ ┃
┃1~256でトーンセットを切り換えます。MMLでは@1~256はもちろん、I0~255でも ┃
┃ ┃
┃便宜上切り換えることが出来ます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
■アフタータッチ・シーケンス
----------------------------------------
[FM][ADPCM][MIDI] アフタータッチ・シーケンス
@Zn1,…,n8
・ni:0~127
アフタータッチを音長の1/8時間単位で設定する。これをZMUSICでは
アフタータッチ・シーケンスと呼ぶ。発音後の音のニュアンスを細かく
変化させることができる。例えば
@z127,120,110,127,80,60,50,10
として絶対音長192の音長でキーオンしたとすると、キー音直後から24(=192/8)カウ
ント毎に、アフタータッチが127,120,110,...と変化していく。
MIDI楽器によっては発音後の鍵盤を押す強さ(即ちアフタータッチ)によって
音色ののニュアンス等を変えることができ、サンプラーなどでは全く別の音色を
発音させることも可能なので使用方法によってはかなり興味深い効果を得ることが
出来る。
FM音源やADPCM音源パートでこの機能を使用した場合は発音後の絶対音量を
設定値で変化させることができる。ソフトエンベロープなどを実現したい場合に
威力を発揮する。(もちろんMIDI楽器の設定でアフタータッチに対応する効果を
音量に設定しておけばFM音源パートなどと同じようにソフトエンベロープ的な
効果を得ることが出来る。)
パラメータは任意の位置で省略可能で、数値の頭に±を付けることによって
相対的な値の指定も可能である。例えば
@z127,,,10
@z,,,,120,,1
@z,,120,,-10,+5
といった記述が可能である。省略した部分は前の値を持続するということになり、
その間はアフタータッチの情報は送信されない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
値を全て省略した場合はアフタータッチ・シーケンス解除と解釈される。
例
@z
ADPCM音源部で使用可能となるのはMPCM組み込み時のみである。
----------------------------------------
■ビブラート(ピッチ・モジュレーション)
----------------------------------------
[FM][ADPCM][MIDI] ビブラート・デプス
@Mn1,…,n8 ...(1)
または
@Mn ...(2)
・n,n1~n8:-32768~32767
ピッチ・モジュレーション(音程を細かく震わせる)の振幅設定を行う。
(1)1/8モード ピッチ・モジュレーション
発音後、音長の1/8時間単位で振幅(モジュレーション・デプス)を変化させることが
出来る。設定可能範囲はFM音源は-32768≦n1~n8≦32767、MIDIのノーマル
モードは0≦n1~n8≦127、拡張モード時は-768≦n1~n8≦768(-8192≦n1~n8≦8191)。
値は任意の位置で省略可能、8個まで記述でき、相対指定も可能で
例
@m60,,,50,127
@m,,,,127
@m,,120,-10,+5
といった記述が行える。
1/8モードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は
無視される。
(2)ディレイ・モード ピッチ・モジュレーション
振幅(モジュレーション・デプス)を1つだけ設定する。振幅の設定範囲は
-32768≦n≦32767。
後述のディレイ・コマンドで設定したディレイの後nの深さで
ピッチ・モジュレーションを実行する。
初期値はいずれのモードにおいても0。また全ての値を省略した場合は
モジュレーション解除のスイッチとなる。
例
@m
----------------------------------------
■ARCC(Assignable real time control change)
----------------------------------------
[FM][ADPCM][MIDI] ARCCコントロール設定
@Cn,r,m
・n:0~127 コントロール番号
・r:0~127 リセット値
・m:0~127 波形基準値
任意のコントロール・チェンジnを選び、これを本命令で登録しておくと、後述の@A
コマンドにて、そのコントロール・チェンジで音源をリアルタイムにコントロールする
ことができる。これをZMUSICではアサイナブル・リアルタイム・コントロール・
チェンジ(Assignable realtime control change)と呼ぶ(以後ARCC)。
MIDIの場合はコントロール・チェンジ番号の有効値はMIDI楽器によって異なるので
各楽器のマニュアルのインプリメンテーション・チャートを参考のこと。
FM音源では独自の
$80=PANPOT (0-127) *1
$81=PMS (0-7)
$82=AMS (0-3)
$84=AMD (0-127)
$85=PMD (0-127)
$86=LFO SPEED (0-127) *2
$87=NOISE (0-63)
*1 パラメータ的には0-127で行われるが実際の効果は左、中央、右の
3段階にしかならない
*2 FM音源のレジスタには0-127の2倍の値(0-254)が書き込まれる
が選択可能となっている。なお()内の数値は各コントロールの有効範囲を表している。
ADPCMにおいてはコントロール番号はMIDIに準拠しているものの、現在では以下の
7=VOLUME 10=PANPOT 11=EXPRESSION
の3つのみしかサポートされていない。
rは、ARCCの実行を解除した時に登録したコントロール・チェンジnに対して
行うリセット値。省略時は0となる。
mは、後述の拡張ARCCモード使用時に使用可能となるプリセット波形や
ユーザー波形の基準値となる値(拡張MML[ARCCn.WAVEFORM]を参照)。
----------------------------------------
[MIDI][ADPCM] ARCCデプス
@An1,…,n8 ...(1)
または
@An ...(2)
・n,n1~n8:-128~127
(1)1/8モード ARCC
発音後音長の1/8時間単位で先述の@Cで登録したコントロール・チェンジへ値を
送信し音源を制御することが出来る。値の設定範囲は0≦n1~n8≦127。
(拡張ARCCモード時には設定範囲は-127≦n1~n8≦127)
値は任意の位置で省略可能、8個まで記述でき、相対指定も可能で
例
@a60,,,50,127
@a,,,,127
@a,,120,-10,+5
といった記述が出来る。
こちらのモードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は
無視される。
(2)ディレイモード ARCC
ARCCの設定値を1つのみ設定する。設定範囲は0≦n≦127。
(拡張ARCCモード時には設定範囲は-127≦n≦127)
後述のディレイ・コマンドで設定したディレイの後、nの値で@C命令で登録した
コントロール・チェンジを実行する。
初期値はいずれのケースにおいても0。また全ての値を省略した場合は
ARCC解除のスイッチとなる。
例
@a
----------------------------------------
■アンプリチュード・モジュレーション(トレモロ)
----------------------------------------
[FM] トレモロ操作対象オペレータ設定
@Cm
・m:%0000~%1111
X680x0のFM音源は4つのオペレータ(発信器)によって構成されているが
その1~4の4つのオペレータのうちどのオペレータに対してアンプリチュード・
モジュレーションの処理を施すかを設定できる。特殊な効果(例えばワウワウ効果)を
表現したい時など以外は特に設定する必要はない。
パラメータのmはビット構成を取っており
d3d2d1d0
□□□□■■■■
↑↑↑↑
|||オペレータ1
||オペレータ2
|オペレータ3
オペレータ4
ビット=1に対応するオペレータに対してモジュレーション処理を施す。
なお、このコマンドで設定した設定値は次回の音色切り換えまで有効である。
音色切り換え時にはその音色のキャリア・オペレータに対してモジュレーション処理を
施すような設定値が自動的に設定される。
本命令はFM音源に対しての知識を必要とする。
例
@c%1001 (オペレータ1と4にモジュレーション処理をする)
----------------------------------------
[FM] トレモロデプス
@An1,…,n8 ...(1)
または
@An ...(2)
・n,n1~n8:-128~127
アンプリチュード・モジュレーション(音量を細かく震わせる)の振幅設定を行う。
(1)1/8モード アンプリチュード・モジュレーション
発音後音長の1/8時間単位で振幅(モジュレーション・デプス)を変化させることが
出来る。値の設定範囲は-127≦n1~n8≦127。値は任意の位置で省略可能、8個まで
記述でき、相対指定も可能で
例
@a60,,,50,127
@a,,,,127
@a,,120,-10,+5
といった記述が出来る。
こちらのモードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は
無視される。
(2)ディレイモード アンプリチュード・モジュレーション
振幅を1つのみ設定する。設定範囲は-127≦n≦127。
後述のディレイ・コマンドで設定したディレイの後、nの振幅でモジュレーションを
開始する。
初期値はいずれのケースにおいても0。また全ての値を省略した場合は
アンプリチュード・モジュレーションの解除スイッチとなる。
例
@a
----------------------------------------
■モジュレーション・サブ・パラメータ
----------------------------------------
[FM][MIDI][ADPCM] ディレイ
@Hn1,n2
・n1:0~32767
・n2:0~32767
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション、
またはMIDIのピッチ・モジュレーション、ARCC、拡張ピッチ・モジュレーション、
拡張ARCCのディレイモード用のディレイを設定する。
n1はピッチ・モジュレーション用のディレイ。
n2はアンプリチュード・モジュレーション/ARCC用のディレイ。
値はどちらか一方の省略は可能。初期値は共に0。
例
@h24,10 (両方同時に設定)
@h,10 (アンプリチュード・モジュレーション/ARCC/拡張ARCCの
ディレイのみ設定する)
@h24 (ピッチ・モジュレーションのディレイのみ設定する)
----------------------------------------
[FM][MIDI][ADPCM] スピード
@Sn1,n2
・n1:1~32767
・n2:1~32767
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション
(またはMIDIの拡張ピッチ・モジュレーション、拡張ARCCモード時)の
モジュレーション・スピードを設定する。設定範囲は1≦n1,n2≦32767。
本命令はMIDIのノーマル・モジュレーション・モードでは全く
考慮されないもので、拡張モードの時のみ有効である。
実際の波形にどう影響するかは拡張MML[VIBRATO.WAVEFORM],[ARCCn.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
値はどちらか一方の省略は可能。初期値は共に6。
例
@s24,10 (両方同時に設定)
@s,10 (アンプリチュード・モジュレーション/拡張ARCCのスピードのみ設定する)
@s24 (ピッチ・モジュレーションのスピードのみ設定する)
----------------------------------------
[FM][MIDI][ADPCM] 波形タイプ選択
Sn1,n2
・n1:0~4,8~32767 (5~7は未定義、使用不可)
・n2:0~4,8~32767 (5~7は未定義、使用不可)
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション
(またはMIDIの拡張ピッチ・モジュレーション、拡張ARCCモード時)の
モジュレーション波形をセレクトする。
n1がピッチ・モジュレーション用の波形、n2がアンプリチュード・モジュレーション用
(または拡張ARCC)の波形に対応する。
波形は波形番号0~4がプリセット波形で、波形番号8~32767がユーザー定義波形となる。
スピードや振幅パラメータの波形への影響については拡張MML[VIBRATO.WAVEFORM],
[ARCCn.WAVEFORM]の項で図解する。
プリセット波形
0:鋸歯波 1:矩形波 2:三角波 3:ワンショット鋸歯波 4:ランダム波
値はどちらか一方の省略は可能。初期値は共に2の三角波。
例
s1,1 (両方同時に設定)
s,2 (アンプリチュード・モジュレーション/拡張ARCCの波形のみ設定する)
s3 (ピッチ・モジュレーションの波形のみ設定する)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 波形メモリの効能 ┃
┃ ┃
┃ ┃
┃ ZMUSICではユーザーが定義したユーザー波形(波形メモリ)を使ってピッチモジュレ┃
┃ ┃
┃ーション(以下PM)、アゴーギク、アンプリチュード・モジュレーション(以下AM)、 ┃
┃ ┃
┃ARCC、エンハンスド・ベロシティ・シーケンスを実行する事ができます。 ┃
┃ ┃
┃ ZMUSIC Ver.2.0では、波形メモリを使用した場合、振幅値は意味を持ちませんでし┃
┃ ┃
┃たがVer.3.0以降では、振幅値が有効となります。ピッチモジュレーション、アゴー ┃
┃ ┃
┃ギクでの原波形振幅値は256に相当し、効能値は ┃
┃ ┃
┃ 波形値×振幅÷256 ┃
┃ ┃
┃で求められます。また、アンプリチュード・モジュレーション、ARCC、エンハンスド┃
┃ ┃
┃ベロシティ・シーケンスでの原波形振幅値は32に相当し、効能値は ┃
┃ ┃
┃ 波形値×振幅÷32 ┃
┃ ┃
┃で求められます。よって、Ver.2.0で波形メモリを用いた演奏データをVer.3.0で ┃
┃ ┃
┃演奏させた場合は、やや演奏のニュアンスが異なってくる場合がありえます。万が一┃
┃ ┃
┃そう感じた場合はVer3.0を ┃
┃ ┃
┃ A>ZMSC3 -2 ┃
┃ ┃
┃ように'-2'オプションを付けて常駐させてから演奏させるとVer.2.0と同等の演奏が ┃
┃ ┃
┃得られます。 ┃
┃ ┃
┃ 以下に音源パート別にその効能を示します。 ┃
┃ ┃
┃ ┃
┃●FM音源/ADPCM音源パートのピッチ・モジュレーションで使う場合 ┃
┃ ┃
┃ 波形データは半音を64とした値で処理されます。各値がそのチャンネルの ┃
┃ ┃
┃ディチューンと加算されて、それがその瞬間のピッチとして決定されます。 ┃
┃ ┃
┃例えばディチューンが10の時に波形メモリのデータが0,5,-5の時、振幅が原波形 ┃
┃ ┃
┃指定(=256)だったとすると10+0=10, 10+5=15, 10-5=5がそれぞれその瞬間の ┃
┃ ┃
┃ピッチになります。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) @m256 @s6 s8 @h40 順位相で波形メモリ8番をFM・PMで実行 ┃
┃ (t1) @m-256 @s6 s8 @h40 逆位相で波形メモリ8番をFM・PMで実行 ┃
┃ ┃
┃ ┃
┃●FM音源/ADPCM音源パートのアンプリチュード・モジュレーション(ARCC)で使う場合┃
┃ ┃
┃ 波形データはそのチャンネルのボリューム値に加算され、その和がその瞬間の ┃
┃ ┃
┃音量として決定されます。音量の範囲は0~127ですがこの範囲を越えた場合は ┃
┃ ┃
┃この範囲内に修正されます。例えば音量が@V125のとき波形メモリのデータが ┃
┃ ┃
┃0,5,-5の時、振幅が原波形指定(=32)だったとすると125+0=125,125+5=127(130)┃
┃ ┃
┃125-5=120がそれぞれその瞬間の音量になります。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) @a32 @s,6 s,8 @h,40 順位相で波形メモリ8番をFM・ARCCで実行 ┃
┃ (t1) @a-32 @s,6 s,8 @h,40 逆位相で波形メモリ8番をFM・ARCCで実行 ┃
┃ ┃
┃ ┃
┃●MIDIパートの拡張ピッチ・モジュレーションで使う場合 ┃
┃ ┃
┃ 拡張モジュレーション・モード時にはFM音源パートと同様な効果を得ることが ┃
┃ ┃
┃できます。拡張モジュレーション・モードには振幅を半音=64にするか半音≒683 ┃
┃ ┃
┃(ベンドレンジ=12の時)にするかの2つのモードがありますが波形データはこの影響┃
┃ ┃
┃を受けます。たとえば波形データが683で、振幅が原波形指定(=256)だったとすると ┃
┃ ┃
┃半音=64モード時には683/64≒10半音分 の変化量になりますが半音≒683モード時 ┃
┃ ┃
┃には1半音分の変化量となります。用途に合わせて使い分けて下さい。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) m1 @m256 @s6 s8 @h40 順位相で波形メモリ8番をMIDI・拡張PMで実行┃
┃ (t1) m1 @m-256 @s6 s8 @h40 逆位相で波形メモリ8番をMIDI・拡張PMで実行┃
┃ ┃
┃ ┃
┃●MIDIパートの拡張ARCCで使う場合 ┃
┃ ┃
┃ 各波形データはARCCニュートラル値(@Cの第3パラメータ)と加算して、 ┃
┃ ┃
┃その和がコントロールチェンジへ出力されます。応用次第で疑似ランダム・オート・┃
┃ ┃
┃パンポットやFM音源のような自由波形による音量モジュレーションなども実現でき┃
┃ ┃
┃ます。 ┃
┃ ┃
┃例 ┃
┃ ┃
┃ (t1) m,1 @a32 @s,6 s,8 @h,40 順位相で波形メモリ8番をMIDI・拡張ARCCで実行┃
┃ (t1) m,1 @a-32 @s,6 s,8 @h,40 逆位相で波形メモリ8番をMIDI・拡張ARCCで実行┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][MIDI][ADPCM] モジュレーションホールド(同期設定)
Hn1,n2
・n1:0~1
・n2:0~1
FM音源のピッチ・モジュレーション、アンプリチュード・モジュレーション
(またはMIDIの拡張ピッチ・モジュレーション、拡張ARCCモード時)の
モジュレーション波形を、キーオンと同期して初期化させるか(同期モード)、
キーオンと同期して初期化せずに波形タイプの切り換えが起こるまで
継続(ホールド)させるか(非同期モード)を設定する。
n1がピッチ・モジュレーション用、n2がアンプリチュード・モジュレーション用
(または拡張ARCC)の同期/非同期設定パラメータとなる。
値はどちらか一方の省略は可能。初期値は共に0の同期モードが設定されている。
例
h1,1 (両方同時に設定)
h,1 (アンプリチュード・モジュレーション/拡張ARCCの波形を非同期モードに
設定する)
h1 (ピッチ・モジュレーションの波形を非同期モードに設定する)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 特殊効果機能の併用について ┃
┃ ┃
┃ ┃
┃ ZMUSICではさまざまな特殊機能を同時に複数使うことが出来ますが、 ┃
┃ ┃
┃オートベンドとポルタメントは同種機能のため同時使用は出来ません。万一、オート┃
┃ ┃
┃ベンド時にポルタメントを実行した場合にはポルタメントのみ機能し、オートベンド┃
┃ ┃
┃は実行されません。 ┃
┃ ┃
┃ しかし、これ以外の組み合わせは可能です。たとえばポルタメントする音に対して┃
┃ ┃
┃ピッチ・モジュレーション、ARCC/アンプリチュード・モジュレーションをかけ┃
┃ ┃
┃てさらにアフタータッチ・シーケンスを実行する....といった複数の効果を1つの音┃
┃ ┃
┃に対して同時にかけることも可能です。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■モジュレーション・モード
----------------------------------------
[MIDI] モジュレーションモード
Mp,a
・p:0~2
・a:0~1
MIDIにはモジュレーションのモードが2つあり、ひとつは、ある指定された
タイミングにのみMIDI楽器へ制御メッセージを送信するモードで、これを
ノーマルモードと呼ぶ。
もうひとつはリアルタイムに絶えずMIDI楽器へ制御メッセージを送るモードで
こちらを拡張モードと呼ぶ。
ノーマルモードは楽器側のハードウェア的な処理によって特殊効果を実現するので
ZMUSIC側の負荷は少ない。一方、拡張モードは絶えず制御メッセージを送るため
多少の負荷はあるものの、FM音源部のようにMML Sコマンドでセレクトされる波形に
従って制御できるためノーマルモードよりも豊かな情緒表現が行える。
本命令はピッチ・モジュレーションとARCCをノーマルモードと拡張モードの
どちらで実行するかを決定するもの。
・p:0 ノーマルモードの設定。@Mで設定された値を指定のタイミングで
コントロール・チェンジ1番のピッチ・モジュレーションに書き込む。
@Mで指定できる振幅の範囲は0≦@M≦127。
・p:1 拡張モード1の設定。設定された振幅の効用をFM音源の@Mと同じにして、
(@Mで指定される振幅は半音=64ということになる)Sでセレクトした波形で
ピッチ・モジュレーションを実現する。
@Mで指定できる振幅の範囲は-768≦@M≦768。
・p:2 拡張モード2の設定。設定された振幅の値はそのまま14ビットのMIDIの
ピッチベンダー直値に該当する。この振幅で、Sコマンドでセレクトした波形で
ピッチ・モジュレーションを実現する(ベンドレンジ=12のとき、
半音≒683)。@Mで指定できる振幅の範囲は-8192≦@M≦8191。
・a:0 ノーマルモードの設定。@Aで設定した値を指定されたタイミングで書き込む。
・a:1 拡張モードの設定。@Aで-127~127までの振幅を設定すると、
Sコマンドでセレクトした波形に従って生成される値を@Cで登録した
コントロールチェンジに対して出力出来る。
パラメータはどちらか一方の省略は可能。初期値はともに0(ノーマルモード)。
例
m2,1 (両方同時に設定)
m,1 (ARCCのモードのみ設定する)
m1 (ピッチ・モジュレーションのモードのみ設定する)
※注意
本命例を実行するとそれまで設定されていた振幅(@M及び@Aの値)は
無効となる。
----------------------------------------
■特殊機能スイッチング
----------------------------------------
[FM][MIDI] 特殊機能スイッチング
=n
・n:0~%11111111111 (0~2047)
ピッチ・モジュレーション、ARCC、オートベンド、アフタータッチ・シーケンス、
ベロシティ・シーケンスの各機能のスイッチングを行う。
nは各ビット毎に意味を持ち、対応は以下の通りである。
10 9 8 7 6 5 4 3 2 1 0
■■■ ■■■■■■■■
│││ │││││││└ピッチ・モジュレーション
│││ ││││││└─ARCC1
│││ │││││└──オート・ベンド
│││ ││││└───アフタータッチ・シーケンス
│││ │││└────ベロシティ・シーケンス
│││ ││└─────エンハンスド・ベロシティ・シーケンス
│││ │└──────アゴーギク
│││ └───────オートポルタメント
││└────────-ARCC2
│└─────────-ARCC3
└──────────-ARCC4
各ビットを0にするとオフ、1にするとオンとなる。
初期値は0(全機能OFF)である。
例
=%00011 (ピッチ・モジュレーション/ARCC0をON。それ以外をOFF)
※ARCC1~3はMML @Aや@Cでは制御出来ない。ARCC1~3の制御については後述。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ スイッチング・オフについて ┃
┃ ┃
┃ ┃
┃ 各特殊機能の制御MMLにパラメータなしや0を設定するとその機能は停止する ┃
┃ ┃
┃ことになります。例えば @M または @M0 でピッチ・モジュレーション機能を ┃
┃ ┃
┃解除することが出来ます。またはスイッチング・コマンド'='を使って制御すること┃
┃ ┃
┃も出来ます。この2つのスイッチングには微妙な違いがあるので注意して下さい。 ┃
┃ ┃
┃ まず、前者の場合では機能停止時になんらかの初期化措置を音源/楽器側に対して┃
┃ ┃
┃実行します。たとえばMIDIで@M0とした場合はモジュレーション処理を終了 ┃
┃ ┃
┃するともに楽器側へモジュレーションデプス0を送信しています。 ┃
┃ ┃
┃ 一方後者の場合は純粋にZMUSICがモジュレーション処理を中断するだけで ┃
┃ ┃
┃楽器に対しては、なんら特殊な処置をしません。ですから例えばMIDIで ┃
┃ ┃
┃ @h40 @m127 c1 @m d1 ┃
┃ @h40 @m127 c1 =0 d1 ┃
┃ ┃
┃とした場合を考えてみます。両者ともcがディレイ40クロックの後モジュレーション ┃
┃ ┃
┃を開始します。そして、次のdが前者と後者では食い違いが出てきます。 ┃
┃ ┃
┃ 前者ではdはモジュレーションなしで演奏されます。しかし、後者の方は ┃
┃ ┃
┃ZMUSICが「ディレイ40クロックのあとモジュレーションを開始」という処理を┃
┃ ┃
┃止めただけで前の音符のcのモジュレーションがそのまま残ることになりdは ┃
┃ ┃
┃モジュレーションがかかったまま演奏されてしまうのです。 ┃
┃ ┃
┃ こうしたことから'='によるスイッチングは前の状態を保存しつつ、特殊機能を ┃
┃ ┃
┃停止したいという時に用いるとよいでしょう。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■発音制御
----------------------------------------
[FM][ADPCM][MIDI] ホールド(ダンパーペダル)
@Dn
・n:0~1
ダンパーペダルの状態の設定を行う。設定範囲は0がダンパーペダルオフ、
1がダンパーペダルオンである。
ダンパーオンの状態では発音はされるがダンパーオフになるまでキーオフされない。
各楽器の最大同時発音数を超えた時には各楽器に処理が委ねられる。通常は
一番過去に発音された音がキーオフされそのボイスを用いて新たな音がキーオン
されることになる。
----------------------------------------
[FM][ADPCM][MIDI]
@Rn ノートオフ省略モード
・n:0~1
n=1とするとそのトラックは「ノートオフ省略モード」になり、以後ノートオフ
処理をしない。リズムマシンや一部の楽器のリズムキットは発音すればキーオフを送らずとも
よいものがあり(そういった楽器には「ノートオフモード」とか「ノーサスティン」
といったパラメータがあるはず)、こういった楽器やチャンネルに対して「ノートオフ
省略モード」にするとZMUSICのノートオフ処理を省略でき、割り込み演奏処理が幾分軽くなる。
ノートオフ省略モードではゲートタイムという概念がなくなり、MML Qコマンドの
影響を受けず、エンベロープを最後まで実行するため、音を細かく区切ったりなどという
ニュアンスは再現不可能になる。
n=0でノートオフ処理をする、n=1でノートオフ処理をしない。
省略時、及び初期状態は@R0、つまり「ノートオフをする」モードに設定されている。
----------------------------------------
[FM][ADPCM][MIDI] 強制消音
`
強制的にキーオフを行う。そのトラック内において発音中の音を全て消音(ミュート)
する。ただし、ダンパーONやキーオフ無しモードに設定されている場合はノートオフ
できない。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FM音源トラックの最大同時発声数 ┃
┃ ┃
┃ ┃
┃ 内蔵FM音源の和音とダンパーにおいての同時発声数は最大8音です。 ┃
┃ ┃
┃ただし、その割り当ては動的ではなく静的です。たとえばチャンネル1から4和音 ┃
┃ ┃
┃発音した場合、チャンネル1,2,3,4が使用されます。もし、他のトラックでこれらの ┃
┃ ┃
┃チャンネルを使用していた場合、競合が起こり正しく演奏されません。 ┃
┃ ┃
┃FM音源で1音以上の発音を行わせる場合には、この「チャンネルの競合」に注意して ┃
┃ ┃
┃ください。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■フェードイン/フェードアウト
----------------------------------------
[FM][ADPCM][MIDI] フェードイン/フェードアウト
¥n
・n:-128~127
フェードインまたは、フェードアウトを行う。
nは音量増減スピードを表し絶対値が大きいほど増減スピードが速くなる。
-128≦n≦-1 フェードイン
n=0 フェードイン/フェードアウトモード解除
1≦n≦127 フェードアウト
各トラックごとに設定可能なので、各トラック違った速度でフェードインや
フェードアウトが実行可能。
各音源の特性の相違から均等な音量バランスではフェードアウトされない
場合もある。
n=0のフェードイン/フェードアウト解除は処理そのものを中止するだけなので
元の演奏状態に戻したい場合は音量などの再設定を行う必要がある。
----------------------------------------
■繰り返し/反復記号
----------------------------------------
[FM][ADPCM][MIDI] 繰り返し
|:n … |r1 … :| |r2 … :| :| ...(1)
または
|:n … | … :| ...(2)
・n,r1,r2:1~65535
(1)のケース
|:n~:|で囲まれたMMLをn回演奏する(n省略時はn=2が自動設定される)。
|riを|:n~:|の中に挿入すると、|riから:|までの演奏データを繰り返しri回目に
演奏させることが出来る。|:~:|はメモリの有る限り何重まででも括ることが可能で
複雑なシーケンスも可能。
各値の設定可能範囲は1≦n, ri≦65535である。
例
|:3 a |:2 b :| c:| (abbc abbc abbcの様に演奏される)
|:2 a |1 b :| |2 c:| (ab ac の様に演奏される)
(2)のケース
|riのriを省略した|を|:n~:|の中に挿入すると|以降に書かれた演奏データは
最後の繰り返し時には演奏はしないといった特殊例になる。
例
|:5 a | b :| (ab ab ab ab aの様に演奏される)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 多重ループ構造について ┃
┃ ┃
┃ ┃
┃ ZMUSICでは多重の繰り返し構造が設定可能ですが、必ずネスト構造に ┃
┃ ┃
┃なっていなければ希望通りの繰り返しを得ることが出来ません。 ┃
┃ ┃
┃例えば ┃
┃ ┃
┃ |: a |: b |1 c :||2 d e :| ┃
┃ ┃
┃という記述では正常に演奏することが出来ません。 ┃
┃ ┃
┃これは ┃
┃ ┃
┃ |: a |: b |1 c :||2 d e :| :| ┃
┃ ┃
┃としなくてはなりません。 ┃
┃ ┃
┃ 多重ループを使用する際は|:に対応した:|が必ず必要ということなのです。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][ADPCM][MIDI] 反復記号
[~]コマンド
[DO] ~ [LOOP] 囲まれた間を半永久的にループ演奏する。
[D.C.] 始めに飛ぶ(1回のみ有効)。
[D.S.] [SEGNO]または[$]へ飛ぶ(1回のみ有効)。
[SEGNO](または[$])
[TOCODA](または[*]) [CODA]へ飛ぶ(1回以上有効)。
[CODA]
[FINE](または[^]) [D.C.],[D.S.]を実行した後にここで演奏終了する。
この他に演奏データ作成を支援するコマンドがある。
これらのコマンドは共通コマンド(D1)の時のみ有効となる。
(D0)のときは無視される。(MEASURE4 (Dn)コマンド参照)
[!] 次の[!]までジャンプする。ジャンプ後の音源やZMUSICの
内部パラメータはそこまで通常に演奏を行った時と同じに
なっている。[!]が遇数個設定されなかった場合は、正常に
動作しない。
[@] 次の[@]までジャンプする。ジャンプ後の音源やZMUSICの
内部パラメータはそこまで通常に演奏を行った時と同じに
なっている。ほぼ[!]と同機能だが、あるひとつのトラックで
設定すると他のトラックも同時にジャンプを開始する点が違う。
[@]が遇数個設定されなかった場合は、正常に動作しない。
[end] 演奏を中断する。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ [!]/[@]の動作 ┃
┃ ┃
┃ ┃
┃ [!]/[@]の動作手順を以下に示します。 ┃
┃ ┃
┃ 1. 音階/和音/ポルタメント以外の「発音しない」コマンドを実行 ┃
┃ 2. [!]/[@]を見付けるまで1. を繰り返す ┃
┃ 3. [!]/[@]を発見 ┃
┃ 4. 通常演奏へ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■MIDI楽器制御命令
----------------------------------------
[MIDI] MIDI楽器タイプ登録命令
@In1,n2,n3
・n1:0~127
・n2:0~127
・n3:0~127
ZMUSICにそのトラックを演奏する楽器のメーカーID、デバイスID、
モデルIDを設定する(所有しているMIDI楽器の各値にいては楽器の
マニュアルを参照)。これは特に設定しなくても通常のコマンドの動作には
全く影響しない。ただし、MMLの
X
@E
に関しては楽器個別の動作をするため、これらのコマンドを使用する前には必ず
設定しなければならない。
n1=メーカーID(例:ROLAND=$41, KORG=$42, YAMAHA=$43)
n2=デバイスID(各ユーザーが楽器に設定した値。特に設定した覚えのない
場合はその楽器のデフォルトのデバイスIDを設定する)
n3=モデルID(例:MT32=$16, SC55=$42 or $45)
初期値なし。
----------------------------------------
[MIDI] MIDIデータ送信
@Xn1,…,xi
・xi:0~255
MIDIデータの送信を行う。メーカーや楽器の種類には無関係でチェックサム等も
発信しない。
データはいくつでも記述可能。各値の設定範囲は0≦xi≦255であるが、256以上の値を
設定した場合は7ビットずつに分割されて送信される。(8ビットでない点に注意)
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
楽器のメモリーを書き換える場合もあるので各自の責任のもとで使用すること。
----------------------------------------
[MIDI] ローランド・エクスクルーシブ送信
Xn1,…,ni
・ni:0~127
ローランド系の楽器にエクスクルーシブ・メッセージ送信を行う。
@IコマンドでメーカーIDにローランドを設定しておくことが前提。
データの転送方式は「ワン・ウェイ・コミュニケーションのデータセット」
(コマンドID=$12)。
データはいくつでも記述可能。各値の設定範囲は0≦ni≦127であるが、128以上の値を
設定した場合は7ビットずつに分割されて送信される。
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
ローランドエクスクルーシブに不可欠なチェックサム値は自動的に送信される。
本命例はリバーブパラメータの書き換えや音色のパラメータ単位の書き換えを
行うのに有効だが、楽器のメモリーを直接操作するものなので、各自の責任のもとで
使用すること。
----------------------------------------
[MIDI] 汎用エフェクト設定
@Er,c,d
・r:0-127 (GS音源系ではリバーブ)
・c:0-127 (GS音源系ではコーラス)
・d:0-127 (GS音源系ではディレイ)
MIDI楽器のエフェクトを制御する。コントロールチェンジの
エフェクト1(GSではREVERB)へrを、エフェクト3(GSではCHORUS)へcを、
エフェクト4(GSではDELAY)へdを出力する。
ただし、楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
パラメータは任意のものを省略できる。パラメータの有効範囲は0≦r,c,d≦127。
初期値は不定。
----------------------------------------
[MIDI] MT32エフェクト設定
@En1,n2
・n1:1~8
・n2:0~1
@IコマンドにてIDをローランドMT32に設定してある事が前提。
パートn1のエフェクトのスイッチを設定する。n1はパートナンバーを表し
設定範囲は1≦n1≦8。n2はスイッチを表しn2=0がOFF、1がONに相当する。
----------------------------------------
[MIDI] NRPN設定
@Ya1,a2,d1,d2
・a1:0~127
・a2:0~127
・d1:0~127
・d2:0~127
MIDI楽器のNRPNを設定する。
MIDI楽器には、MIDI規格には定められていない機能レジスタを持つことが
許されており、このコマンドはそのレジスタへの設定を行う。
a1,a2はそれぞれNRPNのレジスタ番号(アドレス)上位下位を表し、d1,d2はそれぞれ
データの上位下位を表す。設定範囲は全て0~127でd1,d2のみ省略可能。
SC55では音色パラメータの設定をここで行うことが出来る
(SC55マニュアルp75参照,SC88VLマニュアルp72参照)。
----------------------------------------
■ADPCM制御命令
----------------------------------------
[ADPCM] 再生周波数設定
@Fn
・n:0~6
内蔵ADPCM音源の再生周波数を変更する。設定範囲は0≦n≦6で、各値は
n= 0: 3.9kHz
1: 5.2kHz
2: 7.8kHz
3:10.4kHz
4:15.6kHz
5:20.8kHz *1
6:31.2kHz *1
に対応する。初期値は4で値省略時は4に自動設定される。
*1の周波数はADPCMチップに対して改造を行ったX680x0に対してのみ有効。
----------------------------------------
■FM音源レジスタ設定
----------------------------------------
[FM][ADPCM] FM音源レジスタ設定
Ya,d
・a:0-255
・d:0-255
FM音源のレジスタaへ値dの書き込みを行う。ADPCM音源部で使用した場合も
FM音源のレジスタへの書き込みが行なわれる。使用にはFM音源に関しての
知識と十分な理解が必要。
----------------------------------------
■ノイズ発生
----------------------------------------
[FM] FM音源ノイズの設定
@On
・n:0-31
FM音源のチャンネル8のオペレータ4(スロット32)からノイズを発生する。
nとノイズの周波数とは
n=4000/(32×ノイズ周波数[kHz])
の関係があり、設定範囲は0≦n≦31。値を省略した場合はノイズモード解除とみなす。
----------------------------------------
■コントロール・チェンジ
----------------------------------------
[MIDI] コントロールチェンジ設定
Ya,d
・a:0-127
・d:0-127
コントロールチェンジa番に値dを書き込む。パラメータa,dの設定範囲は
共に0≦a,d≦127。コントロールチェンジについての詳細は各MIDI楽器の
マニュアルのインプリメンテーション・チャートを参照。
----------------------------------------
■演奏制御
----------------------------------------
[FM][ADPCM][MIDI] 同期待ち
W
他のトラックから同期信号が来るまで演奏処理を一時中断する。
----------------------------------------
[FM][ADPCM][MIDI] 同期信号送信
Wn
・n:1~65534
同期待ちしているトラックに対して同期信号を送る。設定範囲は1≦n≦65534。
同期信号を送られたトラックは直ちに演奏を再開する。
例
(t1) @1 v15 o4 q8 cdef w2 ←トラック2へ同期送信
(t2) w @1 v15 o4 q8 gab<c
↑どこからか同期信号が来るまで演奏を中断。
この例では結果的にはcdefgab<cが演奏される。
----------------------------------------
[FM][ADPCM][MIDI] 演奏強制再開
Jn
・n:1~65535
トラックnを強制的に初めから演奏開始にする。演奏が終了していても、演奏中で
あっても演奏開始を受けたトラックは最初から演奏を始める。
設定範囲は1≦n≦65535。
例
(t1) @1 v15 o4 q8 j2r2j2
(t2) @1 v15 o4 q8 l8cdef
この例では結果的にはcdef cdefが演奏される。
----------------------------------------
■コメント
----------------------------------------
[FM][MIDI][ADPCM] コメント
/str
・str:文字列
コメントを与える。/以降その行の改行までをコメントとみなしコンパイル時には
無視される。またコメントはコンパイル後のZMDには埋め込まれない。
例
/This is a pen.
----------------------------------------
■特権命令
----------------------------------------
[FM][ADPCM][MIDI] ZMD埋め込み
;n
・n:0-255
直接ZMDコードnを埋め込む。使用にはZMDの十分な理解を必要とする。
使用方法によっては最悪、暴走してしまう。設定範囲は0≦n≦255。
----------------------------------------
[FM][ADPCM][MIDI] ワーク直接書き換え
?a,d
・a:-2147483648~2147483647
・d:0~4294967296 または -2147483648~2147483647。
そのトラックの演奏ワークのa番に値dを書き込む。dは数値の頭に±を付けて
相対値の設定も可能。
使用にはZMUSICのワークエリアについての十分な理解を必要とする。
使用方法によっては最悪、暴走してしまうので注意。
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ OPMDRV.Xとの互換性について ┃
┃ ┃
┃ ┃
┃ ZMUSICシステムは初代のOPMDRV.Xと互換性がありますが以下の点に┃
┃ ┃
┃注意して下さい(OPMDRV3.Xとは互換性はありません)。 ┃
┃ ┃
┃1. レジスタ番号48~55(KF:キーフラクション)を操作するYコマンドは処理の ┃
┃ ┃
┃都合上、MML @K相当に変換してしまうため、そのトラックにアサインされた ┃
┃ ┃
┃チャンネル以外のキーフラクションを操作していた場合は動作がOPMDRV.Xとは異なっ┃
┃ ┃
┃てきます。 ┃
┃ ┃
┃2. OPMDRV.Xは、'm_play()'や'm_cont()','m_stop()'などの演奏制御命令┃
┃ ┃
┃における操作対象パートをチャンネル番号で指定するような仕様でした。 ┃
┃ ┃
┃ZMUSICではトラック番号で指定するように変更されています。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
5.3. 拡張MML
ここではZMUSIC Ver.3.0になって新たに追加されたMML群について解説します。
Ver.3.0になって新たに追加されたMMLは
[~]
で囲まれた中に英単語列を入れる形態を取っています。テキスト音楽ソースの
可読性を高めることが狙いでこうなりました。そのためほとんどの基本MMLコマンドが
この形態にも存在します。音楽ソース(ZMS)の可読性向上を図るならば、なるべく
この形式を利用するようにしてください。
なお、Ver.2.0以前から存在した[~]形態のコマンド([DO],[LOOP]など)については
5.2.節で解説してありますのでそちらを参照してください。
----------------------------------------
■音色
----------------------------------------
[FM][ADPCM][MIDI] 音色切り換え
[TIMBRE n]
[PROGRAM n]
・n:1~32768
音色を音色番号nに設定する。初期値なし。
基本MML @とほぼ同等の機能(相違点に付いては囲み参照)。
MIDIでは129以上の値を設定すると音色バンク切り換えのメッセージも同時に
送出される。
バンク上位値=((n >> 14).and.$7f)
バンク下位値=((n >> 7).and.$7f)
例
[TIMBRE 25] (音色番号25を設定)
----------------------------------------
[FM][ADPCM][MIDI] 音色切り換え
[TIMBRE n1,n2]
[PROGRAM n1,n2]
・n1:0~16383 (FM音源ADPCM音源パートでは0~255)
・n2:1~128
音色を、バンクn1,音色番号n2に設定する。初期値なし。
基本MML @とほぼ同等の機能(相違点に付いては囲み参照)。
FM音源、ADPCM音源パートのバンクは0-255が有効範囲。
MIDIでは音色バンク切り換えのメッセージも同時に送出される。
バンク上位値=((n1 >> 7).and.$7f)
バンク下位値=(n1.and.$7f)
例
[TIMBRE 4,25] (バンク4の音色番号25を設定)
----------------------------------------
[FM][ADPCM][MIDI] 音色切り換え
[TIMBRE n1:n2,n3]
[PROGRAM n1:n2,n3]
・n1:0~127 バンク上位
・n2:0~127 バンク下位
・n3:1~128 音色番号
音色を、バンクn1:n2,音色番号n3に設定する。初期値なし。
基本MML @とほぼ同等の機能(相違点に付いては囲み参照)。
FM音源、ADPCM音源パートのバンクはn1*128+n2で与えられる。
MIDIでは音色バンク切り換えのメッセージをn1を上位バンク値として、
n2を下位バンク値として送出する。
例
[TIMBRE 4:4,25] (バンク4:4の音色番号25を設定)
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 基本MML @と拡張MML [TIMBRE]の相違点について ┃
┃ ┃
┃ MIDIパートおよびADPCMパートにおいては両者間に相違点はまったく無いがFM音源 ┃
┃ ┃
┃パートにおいては微妙な違いがある。基本MML @による音色切り換えでは音色パラメ ┃
┃ ┃
┃ータのハードウェアLFO、パンポットまでも音色パラメータとして更新してしまうが ┃
┃ ┃
┃[TIMBRE]ではこれら2のパラメータは以前の状態を保持し、音色の本質的なパラメー ┃
┃ ┃
┃タのみを切り換える。 ┃
┃ ┃
┃ たとえば ┃
┃ ┃
┃/ AR DR SR RR SL OL KS ML D1 D2 AM SQU ┃
┃(@1 31 0 0 15 0 25 0 2 0 0 0 ┃
┃ 31 29 0 15 0 35 0 3 0 0 0 ┃
┃ 31 29 0 15 0 35 0 5 0 0 0 ┃
┃ 31 29 0 15 0 0 0 1 0 0 0 ┃
┃/ AL FB OM PAN ┃
┃ 5 7,15, 3) ┃
┃.Assign tr1,FM1 ┃
┃(t1)p1 @1 c ┃
┃(p) ┃
┃ ┃
┃とした場合はcは、p1(左)ではなく@1により音色パラメータのPAN=3が設定された ┃
┃ ┃
┃関係でp3(中央)で演奏される。これに対して ┃
┃ ┃
┃/ AR DR SR RR SL OL KS ML D1 D2 AM SQU ┃
┃(@1 31 0 0 15 0 25 0 2 0 0 0 ┃
┃ 31 29 0 15 0 35 0 3 0 0 0 ┃
┃ 31 29 0 15 0 35 0 5 0 0 0 ┃
┃ 31 29 0 15 0 0 0 1 0 0 0 ┃
┃/ AL FB OM PAN ┃
┃ 5 7,15, 3) ┃
┃.Assign tr1,FM1 ┃
┃(t1)p1 [timbre 1] c ┃
┃(p) ┃
┃ ┃
┃とした場合はcは、[TIMBRE 1]が実行されてもパンポットのパラメータは更新され ┃
┃ ┃
┃ないので、これ以前の設定p1(左)で演奏される。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
[FM][ADPCM][MIDI] バンク切り換え
[TIMBRE_BANK n1,n2]
[PROGRAM_BANK n1,n2]
・n1:0~127 バンク上位
・n2:0~127 バンク下位
音色のバンク切り換えを行う。基本MML Iと同等の機能。
n1はバンク番号上位、n2はバンク番号下位を表す。パラメータは省略すると
強制的に0になる。
GS音源ではバンク切り換えパラメータの上位のみ有効としているので
[TIMBRE_BANK n1]
のみでバンク(GS音源ではバリエーションと呼んでいるが)n1へ切り換える
ことが出来る。
WAVESTATIONではバンク切り換えパラメータの下位のみ有効としているので
[TIMBRE_BANK 0,n2]
でバンクn2へ切り換えることが出来る。
例
[TIMBRE_BANK 0] @128 (バンク0の音色番号128に設定)
[TIMBRE_BANK 0,12] @11 (バンク0,12の音色番号12に設定)
----------------------------------------
[FM][ADPCM][MIDI] 音色振り分け
[TIMBRE_SPLIT sw b1,t1,m1,n1, b2,t2,m2,n2, ... b8,t8,m8,n8]
[PROGRAM_SPLIT sw b1,t1,m1,n1, b2,t2,m2,n2, ... b8,t8,m8,n8]
・sw:OFF,ON
・b1~b8:0-16383 (あるいは00:00~127:127)
・t1~t8:1-32768
・m1~m8:0-127,128 または O-1C~O9G,C-1~G9
・n1~n8:0-127,128 または O-1C~O9G,C-1~G9
発音する音高に応じて、音色を自動的に切り換える機能TIMBRE SPLITの設定を行う。
ノート番号0~127(O-1C~O9G)までを最大8つのブロックに分割し、1つのブロック毎に
別々の音色を対応づけることができる。実際の演奏時には、発音する音符のノート番号
が特定のブロックに属する場合は、その対応付けられた音色に切り換えてから発音を
行う。
・sw:スイッチ
TIMBRE SPLIT機能の制御を行う。sw=OFFで機能解除、sw=ONで機能有効に設定する。
省略して、これ以降のパラメータ(b1~b8,t1~t8,m1~m8,n1~n8)を記述した
場合はONが指定されたとみなす。また、OFFを指定した場合には以降のパラメータを
記述する必要はない。なお、swには数値は与えられない点に注意。
・b1~b8:バンク番号
切り換える音色のバンク番号を設定する。設定範囲は0≦b1~b8≦16383。
また、mm:nnのような表記で指定することも可能でこのときはmmがBANK MSB,
nnがBANK LSBに対応し、設定範囲は0≦mm≦127,0≦nn≦127。
・t1~t8:音色番号
切り換える音色番号を設定する。設定範囲はFM音源,ADPCMパートでは1≦t1~t8≦32768。
MIDIパートでは1≦t1~t8≦128。
・m1~m8:範囲開始ノート番号
分割ブロックの開始ノート番号を設定する。設定範囲は0≦m1~m8≦127。
MMLを使ってO-1C~O9G、C-1~G9といった指定も可能。
・n1~n8:範囲終端ノート番号
分割ブロックの終端ノート番号を設定する。設定範囲は0≦m1~m8≦127。
MMLを使ってO-1C~O9G、C-1~G9といった指定も可能。
例
[TIMBRE_SPLIT ON,0,32,o4c,o5c, 8,32,o2c,o3b ]
O4C~O5Cの音符はバンク0,音色番号32で
O2C~O3Bの音符はバンク8,音色番号32で
演奏する。その他の音域の音符に関してはそれまでに設定されている
音色で演奏する。
----------------------------------------
[FM][ADPCM][MIDI] 音色振り分けスイッチ
[TIMBRE_SPLIT.SWITCH sw]
[PROGRAM_SPLIT.SWITCH sw]
・sw:0,1 または ON,OFF
TIMBRE SPLIT機能の制御を行う。sw=0で機能解除、sw=1で機能有効。
[TIMBRE_SPLIT]のswと同様に文字パラメータを与えることもできる。この場合は
sw=OFFで機能解除、sw=ONで機能有効となる。
例
[TIMBRE_SPLIT.SWITCH off] (TIMBRE_SPLITを機能解除する)
----------------------------------------
■キートランスポーズ/ディチューン/オートベンド
----------------------------------------
[FM][ADPCM][MIDI] オートベンド
[BEND src,dst,dly,hold time(or bend time)]
dst..........._
/| |
/ hold time
src..._/bend time
| |← →|
dly
・src:-16384~+16383
・dst:-16384~+16383
・dly:0~32767
・hold time:-32768~0 または bend time:1~32767
オートベンドの設定を行う。この設定以降に発音する音はこの設定の音程変化に
従う。
まず、絶対音長dlyの間、ピッチsrcを持続し、目的のピッチdstに向けて音程を
変化させていく。変化時間はhold time/bend timeにて行う。値を負にした場合は
hold timeの設定となり、その絶対値の絶対音長分目的のピッチdstを持続するような
音程変化を行う。逆に、正にした場合はbend timeの設定となり、その値の絶対音長の
間に音程変化を行う。
機能的には基本MMLである@Bと同等のもので、1オクターブの変化量を8192として
いる。ただし、MIDIパートでのパラメータ有効範囲は -8192≦src,dst≦8191。
例
[BEND -65,765,24,48 ]
(ピッチ-65から765までの音程変化を行う。ピッチ-65を絶対音長24持続し、
ピッチ765までの音程変化を絶対音長48内で行う。)
[BEND 0,683,24,-48 ] c*192
(ピッチ0から683までの音程変化を行う。ピッチ0を絶対音長24持続してから、
ピッチ683までの音程変化を行い始める。そしてピッチ683の音程を絶対音長48
持続する。この例では音程変化にかける時間は絶対音長120(=192-24-48)になる。)
設定を解除するには
[BEND OFF]
とするか後述の[BEND.SWITCH]コマンドを利用する。解除した場合も変化開始ピッチsrc
はそのまま設定されているのでオートベンドを解除しつつピッチも変更したい場合は
[BEND 0]
のように変化開始ピッチのみを設定し直す。
----------------------------------------
[FM][MIDI][ADPCM] オートベンドのスイッチ
[BEND.SWITCH sw]
・sw:0,1 または OFF,ON
オートベンドの動作のON,OFFを行う。swは0がOFF,1がONに対応する。
また、文字列 ON,OFFを直接与えることもできる。
例
[BEND.SWITCH 0] [BEND.SWITCH OFF] (スイッチオフ)
[BEND.SWITCH 1] [BEND.SWITCH ON] (スイッチオン)
----------------------------------------
[MIDI] ベンドレンジ設定
[BEND.RANGE n]
・n:0-127
MIDI楽器に対してベンドの変化量領域を設定する。MIDIでは14ビット(-8192~8191)
のピッチベンドの変化を与えることができるが、この変化 -8192~0, 0~8191 が
実際にどのような音程変化をもたらすかを設定できる。基本コマンドの@Gに同等の
もの。初期値は12(1オクターブ)
例
[BEND.RANGE 12]
----------------------------------------
[FM][MIDI][ADPCM] ピッチ指定(ディチューン)
[PITCH n]
・n:-8192~+8191
ピッチベンダーホイールの値を設定する。機能的には基本MMLである@Bと同等のもので、
1オクターブの変化量を8192としている。ただし、MIDIパートでのパラメータ有効範囲は
-8192≦src,dst≦8191。
----------------------------------------
[FM][MIDI][ADPCM] 相対ピッチ指定(ディチューン)
[@PITCH n]
・n:-8192~+8191
ピッチベンダーホイルの値設定を相対指定で行う。機能的には基本MMLである@Bと
同等のもので、1オクターブの変化量を8192としている。ただし、MIDIパートでの
パラメータ有効範囲は -8192≦src,dst≦8191。
----------------------------------------
■ポルタメント
----------------------------------------
[FM][MIDI][ADPCM] ポルタメント
[PUSH_PORTAMENT src,dest,step,gate,velo,dly,hold time(or port time)]
[PULL_PORTAMENT src,dest,step,gate,velo,dly,hold time(or port time)]
[PORTAMENT src,dest,step,gate,velo,dly,hold time(or port time)]
dst..........._
/| |
/ hold time
src..._/bend time
| |← →|
dly
・src:o-1c~o9g
・dst:o-1c~o9g
・step:0-32767
・gate:0-32767
・velo:0-127 (相対指定-63~+63も可能)
・dly:0-32767
・hold time:-32768~0 または port.time:1~32767
ポルタメントを行う。基本MMLの(~)によるポルタメントほぼ同等の機能。
・src:開始キー
ポルタメント開始ノート。オクターブ-1のcからオクターブ9のgまでのノートを
指定することができる。
・dest:終端キー
ポルタメント終了ノート。オクターブ-1のcからオクターブ9のgまでのノートを
指定することができる。
・step:ステップタイム
ポルタメント音符の音長を指定する。値は絶対音長指定で行い、その有効範囲は
0-32767。
・gate:ゲートタイム
ポルタメント音符のゲートタイムを指定する。値は絶対音長指定で行い、その
有効範囲は0-32767。
・velo:ベロシティ
ポルタメント音符の発音ベロシティを設定する。値の有効範囲は0-127で、
数値前に±をつけて指定すれば相対指定となる。ただし、この時の有効範囲は
-63~+63となる。
・ dly:ディレイ(遅延時間)
発音後、ポルタメントを開始するまでの遅延時間を設定する。値は絶対音長指定で
行い、その有効範囲は0-32767。
・hold time or port.time:持続時間または変化時間
負値を与えた場合は、ポルタメントにおける音程変化を行ったあと最終的に、
どのくらいの時間これを持続するかの設定を行う(hold time)。また正値を与えた
場合はポルタメントにおける音程変化を絶対音長でどれくらいかけるかの設定を
行う(port.time)。
それぞれ有効範囲はhold time:-32768~0,port.time:1~32767。
なお、[PUSH_PORTAMENT]と[PORTAMENT]はまったく同一機能。
また、[PUSH_PORTAMENT]と[PULL_PORTAMENT]の違いは基本MMLで言うところの
(~)のポルタメントと[~]のポルタメントの違いがある。なお、[PUSH_PORTAMENT]が
基本MML(~)に相当し、[PULL_PORTAMENT]が基本MML[~]によるポルタメントに
対応する。
例
[PORTAMENT o4c,o4e,48,46,120,8,24]
(オクターブ4のcからeに向けてポルタメントを開始する。ポルタメントノートは
ステップタイムは48、ゲートタイムは46、ベロシティ120で発音する。発音後、
絶対音長8の遅延時間の後、絶対音長24かけて目的のノートへポルタメントする。
残った時間、絶対音長14(=48-8-24)の間、変化先音程であるオクターブ4のeを
持続する。)
[PULL_PORTAMENT o4c,o4e,48,46,120,8,-24]
(オクターブ4のcからeに向けてポルタメントを開始する。ポルタメントノートは
ステップタイムは48、ゲートタイムは46、ベロシティ120で発音する。発音後、
絶対音長8の遅延時間の後、絶対音長16(=48-8-24)かけて目的のノートへ
ポルタメントする。絶対音長24の間、変化先音程であるオクターブ4のeを
持続する。)
----------------------------------------
[FM][MIDI][ADPCM] オートポルタメント
[AUTO_PORTAMENT sw,dly,hold time(or port.time)]
_
/| |
/ hold time
_/port.time
| |← →|
dly
・sw:0,1 または OFF,ON
・dly:0-32767
・hold time:-32768~0 または port.time:1~32767
オートポルタメントを制御する。有効にするとある音から次に発音する音符までの
音程を断続的に変化させる。
・sw:スイッチ
オートポルタメントを有効にするか無効にするかを設定する。0がOFF,1がONに対応
する。またはOFF,ONといった文字列を与えることも可能。
・dly:ディレイ(遅延時間)
オートポルタメントを開始するまでのチェンジ間を絶対音長で与える。
有効範囲は0~32767。
・hold.time or port.time:持続時間または変化時間
負値を与えた場合は、オートポルタメントにおける音程変化を行ったあと最終的に、
どのくらいの時間これを持続するかの設定を行う(hold time)。また正値を与えた
場合はオートポルタメントにおける音程変化を絶対音長でどれくらいかけるかの
設定を行う(port.time)。
それぞれ有効範囲はhold time:-32768~0,port.time:1~32767。
※MIDIでオートポルタメントを実行すると暗黙のうちに
@J1相当のタイモードに変更されます。
----------------------------------------
[FM][MIDI][ADPCM] オートポルタメントスイッチ
[AUTO_PORTAMENT.SWITCH sw]
・sw:0,1 または OFF,ON
オートポルタメントの動作のON,OFFを行う。swは0がOFF,1がONに対応する。
また、文字列 ON,OFFを直接与えることもできる。
例
[AUTO_PORTAMENT.SWITCH 0] [AUTO_PORTAMENT.SWITCH OFF] (スイッチオフ)
[AUTO_PORTAMENT.SWITCH 1] [AUTO_PORTAMENT.SWITCH ON] (スイッチオン)
----------------------------------------
■アフタータッチ・シーケンス
----------------------------------------
[FM][MIDI][ADPCM] アフタータッチシーケンス設定
[AFTERTOUCH.LEVEL mode, v1,v2,…,v8]
・mode:OFF,1/8,OPTIONAL,ON
・v1~v8:0-127
アフタータッチシーケンスにおけるアフタータッチ値v1~v8の設定を行う。
基本MMLの@Zとほぼ同等の機能だが mode が設定できるのが特徴。modeとは
アフタータッチシーケンスの動作方式を設定するもの。以下にmodeと対応する
動作を示す。
・mode:ON
アフタータッチシーケンスを以前の設定で再開する。
・mode:OFF
アフタータッチシーケンスを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でv1からv8のアフタータッチを次々に設定していく。
ちょうど基本MMLが提供するアフタータッチシーケンスの機能と同等。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でv1からv8のアフタータッチを
次々に設定していく。時間区間のシーケンスは後述の[AFTERTOUCH.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。)
v1~v8のアフタータッチ値は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[AFTERTOUCH.LEVEL optional 127,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間はアフタータッチの情報は送信されない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[AFTERTOUCH.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、v1=0,v2=0,v3=10,v4=20,v5=30と設定した。v6,v7,v8は省略(未設定)。
----------------------------------------
[FM][MIDI][ADPCM] アフタータッチシーケンス・ディレイ
[AFTERTOUCH.DELAY dl0,dl1,…,dl8]
発音
↓
____
........|___
v1 | |___.......
........| | |.......v2
←──-→←-→←→
dl0 dl1 dl2 v1,v2はdl1,dl2に対応する
[AFTERTOUCH.LEVEL]のアフタータッチ値
・dl0:0~32767
・dl1~dl8:1~65535
アフタータッチシーケンスの動作モードの一つである「OPTIONAL」モードにおける
アフタータッチ出力タイミングを決定する区間時間の設定を行う。
dl0は最初のアフタータッチがかかるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0~32767。初期値は0。
dl1~dl8は次のアフタータッチ出力までの区間時間で、これも絶対音長値で指定
する。有効範囲は0~65535。初期値は無し。
dl0~dl8の任意のものを省略可能だが、dl1~dl8は初期値を持たないので注意。
例
[AFTERTOUCH.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=12が設定される。
上を設定したあとで、たとえば
[AFTERTOUCH.DELAY 22,33,,,,,,,44]
とした場合、省略したパラメータについては前の値が保存され、指定された
パラメータのみ書き変わるので、設定は
dl0=22,dl1=33,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=44のようになる。
^^ ^^ ^^
----------------------------------------
[FM][MIDI][ADPCM] アフタータッチシーケンス・スイッチ
[AFTERTOUCH.SWITCH mode]
・mode:-1~2 または OFF,1/8,OPTIONAL,ON
アフタータッチの動作制御を行う。modeは[AFTERTOUCH.LEVEL]のパラメータの
modeと同等。modeは数値で与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[AFTERTOUCH.SWITCH OPTIONAL]
(OPTIONALモードでONにする)
[AFTERTOUCH.SWITCH 2]
(以前のモード(1/8かOPTIONALのいずれか)でONにする)
----------------------------------------
[FM][MIDI][ADPCM] アフタータッチシーケンス同期モード設定
[AFTERTOUCH.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1~65535
アフタータッチシーケンスの初期化(リセット)タイミングの設定を行う。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびに、アフタータッチシーケンスを
最初から行う。「非同期」にした場合は発音と無関係にアフタータッチシーケンスを
続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
同期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[AFTERTOUCH.SYNC %011] (発音と同時、タイ指定においても初期化する)
----------------------------------------
■ビブラート(ピッチモジュレーション)
----------------------------------------
[FM][MIDI][ADPCM] ビブラート振幅
[VIBRATO.DEPTH mode,dp1,dp2,…,dp8]
・mode:OFF,1/8,OPTIONAL,ON
・dp1~dp8:-32768~+32767
ビブラートの振幅の設定をdp1~dp8において行う。基本MMLの@Mとほぼ同等の
機能だが mode が設定できるのが特徴。modeとはビブラートの動作方式を設定するもの。
以下にmodeと対応する動作を示す。
・mode:ON
ビブラートを以前の設定で再開する。
・mode:OFF
ビブラートを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でdp1からdp8のビブラート振幅を次々に変化していく。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でdp1からdp8のビブラート振幅を
次々に設定していく。時間区間のシーケンスは後述の[VIBRATO.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
dp1~dp8のビブラート振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[VIBRATO.DEPTH optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[VIBRATO.DEPTH 1/8 0,0,10,20,30]
modeを1/8とし、dp1=0,dp2=0,dp3=10,dp4=20,dp5=30と設定した。
dp6,dp7,dp8は省略(未設定)。
----------------------------------------
[FM][MIDI][ADPCM] ビブラート振幅増加
[VIBRATO.DEEPEN sw,spd,dpn,rpt]
・sw:OFF,ON
・spd:1~65535
・dpn:-32768~+32767
・rpt:0~32767
ビブラートの振幅の増加/減少を設定する。
・sw:OFF,ON
ビブラートの振幅増減機能を有効にするか無効にするかを設定する。
OFFで無効に、ONで有効に設定される。
・spd:増減速度
ビブラートの振幅の増減速度を設定する。1がもっとも速く、65535がもっとも
遅い。0はエラー。値は絶対音長に相当し、有効範囲は1~65535。
・dpn:振幅増加量
振幅の増減量を設定する。負値は振幅減少、正値は振幅増加に対応する。
値の有効範囲は-32768~+32767。絶対値が大きければ大きいほど、増減は
急激となる。
・rpt:増減回数
振幅はspdの速度でdpn幅増減するが、この処理を何回繰り返すかを設定する。
rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。
値の有効範囲は1~32767。
例
[VIBRATO.DEEPEN ON,6,+8,10]
(増減スピード6で10回振幅を8増加させる)
----------------------------------------
[FM][MIDI][ADPCM] ビブラート・スピード(周期)
[VIBRATO.SPEED sp1,sp2,…,sp8]
・sp1~sp8:1~32767
ビブラートの振動速度を設定する。基本MMLの@Sとほぼ同等の機能を持つが
最大8つの振幅変化に対応した振動速度変化の設定が行えるのが特長。
設定範囲は1≦sp1~sp8≦32767。
実際の波形にどう影響するかは拡張MML[VIBRATO.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1~sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[VIBRATO.SPEED 10,8,20]
(sp1=10,sp2=8,sp3=20,sp4~sp8は省略(未設定))
----------------------------------------
[FM][MIDI][ADPCM] ビブラートディレイ
[VIBRATO.DELAY dl0,dl1,…,dl8]
・dl0:0~32767
・dl1~dl8:0~65535
ビブラートの動作モードの一つである「OPTIONAL」モードにおけるビブラートの振幅
切り換えタイミングを決定する区間時間の設定を行う。基本MML @Hに相当する機能。
dl0は最初のビブラートがかかるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0~32767。初期値は0。
dl1~dl8は次の振幅切り換えまでの区間時間で、これも絶対音長値で指定
する。有効範囲は0~65535。初期値は無し。
dl0~dl8の任意のものを省略可能だが、dl1~dl8は初期値を持たないので注意。
例
[VIBRATO.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=12が設定される。
----------------------------------------
[FM][MIDI][ADPCM] ビブラート波形選択
[VIBRATO.WAVEFORM w]
・w:0-32767
ビブラート波形を選択する。基本MMLのSと同等の機能。
w=0~4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5~7はリザーブ。w=8~32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
@M:振幅 [VIBRATO.DEPTH]
@H:ディレイ [VIBRATO.DELAY]
@K:ディチューン [VIBRATO.DETUNE]
@S:速度 [VIBRATO.SPEED]
波形番号0:鋸歯波(SAW) (振幅が正の時)
_
/ / / / /↑@M
@K→____/ / / / / ↓
←──→ / / / /  ̄
@H / / / /|
| |
@S
波形番号0:鋸歯波 (振幅が負の時)
\ \ \ \
@K→____ \ \ \ \ _
←──→\ \ \ \ \ ↑
@H \ \ \ \ |\↓@M
| | ̄
@S
波形番号1:矩形波 (振幅が正の時)
 ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄
@K→____ _
←──→ ↑@M
@H __ __ __ __↓
| |  ̄
@S
波形番号1:矩形波 (振幅が負の時)
_
 ̄ ̄  ̄ ̄  ̄ ̄↑@M
@K→____ ↓
←──→  ̄
@H __ __ __
| |
@S
波形番号2:三角波 (振幅が正の時)
_
/\ /\ /↑@M
@K→____/ \ / \ / ↓
←──→ \ / \ /|  ̄
@H \/ \/ |
| |
@S
波形番号2:三角波 (振幅が負の時)
/\ /\
@K→____ / \ / \ _
←──→\ / \ / |\ ↑@M
@H \/ \/ | \↓
| | ̄
@S
波形番号3:鋸歯波シングル (振幅が正の時)
_____________
/↑@M
@K→____/| ↓
←──→| |  ̄
@H @S
波形番号3:鋸歯波シングル (振幅が負の時)
@K→____ _
←──→\ ↑
@H |\↓@M
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@S
波形番号4:ランダム波 (振幅が正の時)
波形番号8~32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+10*@M/256
+5*@M/256 ̄ ̄
 ̄ ̄ __+3*@M/256
@K→──── ──
←──→ __ 0*@M/256
@H -5*@M/256
←→
@S
波形番号4:ランダム波 (振幅が負の時)
波形番号8~32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+5*@M/256
 ̄ ̄ 0*@M/256
@K→──── ──
←──→__  ̄ ̄-3*@M/256
@H -5*@M/256__
-10*@M/256
←→
@S
----------------------------------------
[FM][MIDI][ADPCM] ビブラートスイッチ
[VIBRATO.SWITCH mode]
・mode:-1~2 または OFF,1/8,OPTIONAL,ON
ビブラートの動作制御を行う。modeは[VIBRATO.DEPTH]のパラメータの
modeと同等。modeは数値で与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[VIBRATO.SWITCH 1/8]
(1/8モードでONにする)
[VIBRATO.SWITCH 2]
(以前のモード(1/8かOPTIONALのいずれか)でONにする)
----------------------------------------
[FM][MIDI][ADPCM] ビブラート同期モード
[VIBRATO.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1~65535
ビブラート波形の初期化(リセット)タイミングの設定を行う。基本MML Hに
相当する機能を持つ。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびにビブラート波形の初期化を行う。
「非同期」にした場合は発音と無関係にビブラートを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
第4ビット 波形は休符でも進行する [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[VIBRATO.SYNC %011] (発音と同時、タイ指定においても初期化する)
----------------------------------------
[MIDI] ビブラートモード
[VIBRATO.MODE mode]
・mode:0~2 または NORMAL,FM,MIDI
MIDIにはビブラートモードが2つあり本命例はこのモード選択をするもので、
基本MML Mに相当する。ビブラートに付いての詳解は基本MML Mの項を参照のこと。
・mode=0,NORMAL
ノーマルモードの設定。
「[VIBRATO.DEPTH]で指定できる振幅の範囲は0≦@M≦127。
・mode=1,FM
拡張モード1の設定。[VIBRATO.DEPTH]で指定される振幅は半音=64として
作用する。[VIBRATO.DEPTH]で指定できる振幅の範囲は-768≦@M≦768。
・mode=2,MIDI
拡張モード2の設定。設定された振幅の値はそのまま14ビットのMIDIの
ピッチベンダー直値に該当する。(ベンドレンジ=12のとき半音≒683)。
[VIBRATO.DEPTH]で指定できる振幅の範囲は-8192≦@M≦8191。
※注意
本命例を実行するとそれまで設定されていた振幅([VIBRATO.DEPTH]の値)は無効となる。
例
[VIBRATO.MODE NORMAL] (ビブラートモードを通常モードに設定する)
----------------------------------------
■ARCC(Assignable Realtime Control Change)
----------------------------------------
[FM][MIDI][ADPCM] ARCC振幅
[ARCCn.LEVEL mode,lv1,lv2,…,lv8]
[ARCCn.DEPTH mode,lv1,lv2,…,lv8]
・n:1-4
・mode:OFF,1/8,OPTIONAL,ON
・lv1~lv8:-128~+127
ARCCの振幅設定を行う。基本MMLの@Aほぼの機能だが@AはARCC1に対しての
設定しか行えないのに対して、本命例は各トラック独立動作させることのできる
4つのARCCコントローラーに対して個別にパラメータを設定できる。
nはARCC番号で設定範囲は1~4。
modeとはARCCの動作方式を設定するもの。以下にmodeと対応する動作を示す。
・mode:ON
ARCCを以前の設定で再開する。
・mode:OFF
ARCCを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でlv1からlv8のARCC値を次々に設定していく。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でlv1からlv8のARCC振幅を
次々に設定していく。時間区間のシーケンスは後述の[ARCCn.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
lv1~lv8のARCC振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[ARCCn.LEVEL optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[ARCC1.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。lv6,lv7,lv8は
省略(未設定)。
----------------------------------------
[FM][MIDI][ADPCM] ARCC振幅増加
[ARCCn.DEEPEN sw,spd,dpn,rpt]
・n:1-4
・sw:OFF,ON
・spd:1~65535
・dpn:-32768~+32767
・rpt:0~32767
ARCCの振幅の増加/減少を設定する。
・sw:OFF,ON
ARCCの振幅増減機能を有効にするか無効にするかを設定する。
OFFで無効に、ONで有効に設定される。
・spd:増減速度
ARCCの振幅の増減速度を設定する。1がもっとも速く、65535がもっとも
遅い。0はエラー。値は絶対音長に相当し、有効範囲は1~65535。
・dpn:振幅増加量
振幅の増減量を設定する。負値は振幅減少、正値は振幅増加に対応する。
値の有効範囲は-32768~+32767。絶対値が大きければ大きいほど、増減は
急激となる。
・rpt:増減回数
振幅はspdの速度でdpn幅増減するが、この処理を何回繰り返すかを設定する。
rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。
値の有効範囲は1~32767。
例
[ARCC1.DEEPEN ON,6,+8,10]
(ARCC1を増減スピード6で10回振幅を8増加させる)
----------------------------------------
[FM][MIDI][ADPCM] ARCCコントロール設定
[ARCCn.CONTROL ctrl]
・n=:1-4
・ctrl:0-127
ARCCの制御対象コントロールを設定する。基本MMLの@Cほぼの機能だが@Cは
ARCC1に対しての設定しか行えないのに対して、本命例は各トラック独立動作
させることのできる4つのARCCコントローラーに対して個別にパラメータを
設定できる。
nはARCC番号で設定範囲は1~4。
ctrlは制御対象コントロール番号。MIDIパートならばARCCで制御したいコントロール
チェンジ番号を与えることになる。MIDIパートのコントロールは以下の文字列を
設定することでも行える。
0=BANK_MSB 1=VIBRATO 2=CTRL2 3=CTRL3 4=CTRL4 5=PORTAMENT_TIME 6=DATA_ENTRY_MSB
7=VOLUME 8=CTRL8 9=CTRL9 10=PANPOT 11=EXPRESSION 12=CTRL12 13=CTRL13 14=CTRL14
15=CTRL15 16=CTRL16 17=CTRL17 18=CTRL18 19=CTRL19 20=CTRL20 21=CTRL21 22=CTRL22
23=CTRL23 24=CTRL24 25=CTRL25 26=CTRL26 27=CTRL27 28=CTRL28 29=CTRL29 30=CTRL30
31=CTRL31 32=BANK_LSB 33=CTRL33 34=CTRL34 35=CTRL35 36=CTRL36 37=DATA_ENTRY_LSB
38=CTRL31 39=CTRL39 40=CTRL40 41=CTRL41 42=CTRL42 43=CTRL43 44=CTRL44 45=CTRL45
46=CTRL46 47=CTRL47 48=CTRL48 49=CTRL49 50=CTRL50 51=CTRL51 52=CTRL52 53=CTRL53
54=CTRL54 55=CTRL55 56=CTRL56 57=CTRL57 58=CTRL58 59=CTRL59 60=CTRL60 61=CTRL61
62=CTRL62 63=CTRL63 64=DAMPER 65=PORTAMENT 66=SOSTENUTO 67=SOFT 68=CTRL68
69=FREEZE 70=CTRL70 71=CTRL71 72=CTRL72 73=CTRL73 74=CTRL74 75=CTRL75 76=CTRL76
77=CTRL77 78=CTRL78 79=CTRL79 80=CTRL80 81=CTRL81 82=CTRL82 83=CTRL83
84=PORTAMENT_CONTROL 85=CTRL85 86=CTRL86 87=CTRL87 88=CTRL88 89=CTRL89
90=CTRL90 91=REVERB 92=TREMOLO 93=CHORUS 94=DELAY 95=PHASER 96=DATA_INCREMENT
97=DATA_DECREMENT 98=NRPN_LSB 99=NRPN_MSB 100=RPN_LSB 101=RPN_MSB 102=CTRL102
103=CTRL103 104=CTRL104 105=CTRL105 106=CTRL106 107=CTRL107 108=CTRL108
109=CTRL109 110=CTRL110 111=CTRL111 112=CTRL112 113=CTRL113 114=CTRL114
115=CTRL115 116=CTRL116 117=CTRL117 118=CTRL118 119=CTRL119 120=ALL_SOUND_OFF
121=RESET_ALL_CONTROLLERS 122=LOCAL 123=ALL_NOTES_OFF 124=OMNI_OFF 125=OMNI_ON
126=MONO 127=POLY
例
[ARCC1.CONTROL EXPRESSION]
[ARCC1.CONTROL 11]
(上記2つはは同義)
FM音源パートのctrlは%0000~%1111で操作対象オペレータの登録となる。
それぞれビット0~3までがOPMのオペレータ1~4に対応する。また以下の文字列で
コントロール設定を行えばFM音源の特殊パラメータに対してのARCCが行える。
()内の数値はモジュレート有効範囲を表す。たとえばFM.AMSに対して-128~127の
振幅でモジュレートしても実際に有効となる値は0-3のみ。
$80=FM.PANPOT (0-127) *1
$81=FM.PMS (0-7)
$82=FM.AMS (0-3)
$84=FM.AMD (0-127)
$85=FM.PMD (0-127)
$86=FM.LFO (0-127) *2
$87=FM.NOISE (0-63)
*1 パラメータ的には0-127で行われるが実際の効果は左、中央、右の
3段階にしかならない
*2 FM音源のレジスタには0-127の2倍の値(0-254)が書き込まれる
例
[ARCC1.CONTROL FM.AMD]
[ARCC1.CONTROL $84]
(上記2つはは同義)
ADPCMパートのctrlはMIDIに準拠するが、現時点でサポートされているのは
7=VOLUME 10=PANPOT 11=EXPRESSION
の3つのみ。
----------------------------------------
[FM][MIDI][ADPCM] ARCC波形の原点設定
[ARCCn.ORIGIN org]
・org:0-127
ARCC波形の基準値を設定する。この値を振幅の上限値として[ARCCn.DEPTH]
([ARCCn.LEVEL])で設定した振幅で振動する。この値は[ARCCn.WAVEFORM]の図解中の
@Cに相当する。初期値は127。
例
[ARCC1.ORIGIN 64] (ARCC1の波形の基準値を64に設定する)
----------------------------------------
[FM][MIDI][ADPCM] ARCC波形の初期化値の設定
[ARCCn.RESET rst]
・rst:0-127
ARCC波形の初期化値を設定する。後述の[ARCCn.MODE]の設定によって多少作用が
異なる。初期値は0。
・[ARCCn.MODE]がNORMALのとき
ARCC開始時にこの値でコントローラが初期化される(ただし[ARCCn.DELAY]のdl≠0
のとき)。またARCC解除時にもこの値でコントローラが初期化される。
・[ARCCn.MODE]がSPECIAL(ENHANCED)のとき
ARCC解除時にもこの値でコントローラが初期化される。
例
[ARCC1.RESET 0] (ARCC1の初期化値を0に設定する)
----------------------------------------
[FM][MIDI][ADPCM] ARCCスピード(周期)
[ARCCn.SPEED sp1,sp2,…,sp8]
・n:1-4
・sp1~sp8:1~32767
ARCCの振動速度を設定する。基本MMLの@Sとほぼ同等の機能を持つが
最大8つの振幅変化に対応した振動速度変化の設定が行えるのが特長。
nは設定先ARCC番号で設定範囲は1~4。
sp1~8は速度値で設定範囲は1≦sp1~sp8≦32767。
実際の波形にどう影響するかは拡張MML[ARCCn.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1~sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[ARCC1.SPEED 10,8,20]
(ARCC1の速度をsp1=10,sp2=8,sp3=20と設定,sp4~sp8は省略(未設定))
----------------------------------------
[FM][MIDI][ADPCM] ARCCディレイ
[ARCCn.DELAY dl0,dl1,…,dl8]
・n:1-4
・dl0:0~32767
・dl1~8:0~65535
ARCCの動作モードの一つである「OPTIONAL」モードにおけるARCCの振幅
切り換えタイミングを決定する区間時間の設定を行う。基本MML @Hに相当する機能。
nは設定先ARCC番号で設定範囲は1~4。
dl0は最初のARCCが実行されるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0~32767。初期値は0。
dl1~dl8は次の振幅切り換えまでの区間時間で、これも絶対音長値で指定
する。有効範囲は0~65535。初期値は無し。
dl0~dl8の任意のものを省略可能だが、dl1~dl8は初期値を持たないので注意。
例
[ARCC1.DELAY 10,24,12,12,12,28,28,12,12]
(ARCC1のディレイをdl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,
dl7=12,dl8=12と設定する。)
----------------------------------------
[FM][MIDI][ADPCM] ARCC波形
[ARCCn.WAVEFORM w]
・n:1-4
・w:0-32767
ARCC波形を選択する。基本MMLのSと同等の機能。
nは設定先ARCC番号で設定範囲は1~4。
wの0~4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5~7はリザーブ。w=8~32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
@A:振幅 [ARCCn.DEPTH]([ARCCn.LEVEL])
@H:ディレイ [ARCCn.DELAY]
@C:波形基準値※ [ARCCn.ORIGIN] (ARCCn.CONTROL/@Cの第3パラメータ)
@S:速度 [ARCCn.SPEED]
※FM音源パートおよびADPCMパートでは[ARCCn.CONTROL]を設定していない場合、ARCCは
アンプリチュードモジュレーションとして動作する。この場合は上記の@Cで
表される波形基準値はその時点での設定音量に相当する。
FM音源パートおよびADPCMパートでも[ARCCn.CONTROL]を設定している場合は、
MIDIパートと同様のARCCとして機能する。
波形番号0:鋸歯波 (振幅が正の時)
@C→____ _
←──→\ \ \ \ ↑
@H \ \ \ \ |
\ \ \ \ |@A
\ \ \ |\↓
| | ̄
@S
波形番号0:鋸歯波 (振幅が負の時)
@C→____ _
←──→ / / / /↑
@H / / / / |@A
/ / / / |
/ / / /| ↓
| |  ̄
@S
波形番号1:矩形波 (振幅が正の時)
@C→____ _
←──→ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
@H |
|@A
__ __ __ __↓
| |  ̄
@S
波形番号1:矩形波 (振幅が負の時)
@C→____ _
←──→  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
@H |@A
|
__ __ __ __ ↓
| |  ̄
@S
波形番号2:三角波 (振幅が正の時)
@C→____ _
←──→\ /\ / ↑
@H \ / \ / |
|\ / \ / |@A
| \/ \/ ↓
|←→|  ̄
@S
波形番号2:三角波 (振幅が負の時)
@C→____ _
←──→ /\ /\ ↑
@H / \ / \ |
/| \ / \ |@A
/ | \/ \ ↓
|←→|  ̄
@S
波形番号3:鋸歯波シングル (振幅が正の時)
@C→____ _
←──→\ ↑
@H \ |
\ |@A
|\↓
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@S
波形番号3:鋸歯波シングル (振幅が負の時)
@C→____ _____________
←──→ /↑
@H / |@A
/ |
/| ↓
| |  ̄
@S
波形番号4:ランダム波 (振幅が正の時)
波形番号8~32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+10*@A/32
+5*@A/32 ̄ ̄
 ̄ ̄ __+3*@A/32
@C→──── ──
←──→ __ 0*@A/32
@H -5*@A/32
←→
@S
波形番号4:ランダム波 (振幅が負の時)
波形番号8~32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+5*@A/32
 ̄ ̄ 0*@A/32
@C→──── ──
←──→__  ̄ ̄-3*@A/32
@H -5*@A/32 __
-10*@A/32
←→
@S
----------------------------------------
[FM][MIDI][ADPCM] ARCCスイッチ
[ARCCn.SWITCH mode]
・n:1-4
・mode:-1~2 または OFF,1/8,OPTIONAL,ON
ARCCの動作制御を行う。
nは設定先ARCC番号で設定範囲は1~4。
modeは[ARCCn.DEPTH]([ARCCn.LEVEL])のパラメータのmodeと同等。modeは数値で
与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[ARCC2.SWITCH 1/8]
(ARCC2を1/8モードでONにする)
[ARCC4.SWITCH 2]
(ARCC4を以前のモード(1/8かOPTIONALのいずれか)でONにする)
----------------------------------------
[FM][MIDI][ADPCM] ARCC同期モード
[ARCCn.SYNC m,c]
・n:1-4
・m:0=非同期 1=同期 または OFF,ON
・c:1~65535
ARCC波形の初期化(リセット)タイミングの設定を行う。基本MML Hに
相当する機能を持つ。
nは設定先ARCC番号で設定範囲は1~4。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびにARCC波形の初期化を行う。
「非同期」にした場合は発音と無関係にARCCを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
第4ビット 波形は休符でも進行する [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[ARCC2.SYNC %011] (ARCC2を発音と同時、タイ指定においても初期化する)
----------------------------------------
[FM][MIDI][ADPCM] ARCCモード
[ARCCn.MODE mode]
・n:1-4
・mode:0~2 または NORMAL,SPECIAL(ENHANCED)
MIDIにはARCCモードが2つあり本命例はこのモード選択をするもので、
基本MML Mに相当する。ARCCについての詳解は基本MML Mの項を参照のこと。
nは設定先ARCC番号で設定範囲は1~4。
・mode=0,NORMAL
ノーマルモードの設定。
[ARCCn.DEPTH]([ARCCn.LEVEL])で指定できる振幅の範囲は0≦@A≦127。
・mode=1,SPECIAL
拡張モード1の設定。ARCCは選択した波形にそって実行される。
[ARCCn.DEPTH]([ARCCn.LEVEL])で指定できる振幅の範囲は-128≦@A≦127。
※注意
本命例を実行するとそれまで設定されていた振幅([ARCCn.DEPTH],[ARCCn.LEVEL])
は無効となる。
例
[ARCC3.MODE NORMAL] (ARCC3のARCCモードを通常モードに設定する)
----------------------------------------
[FM][MIDI][ADPCM] ARCC波形位相制御
[ARCCn.PHASE mode]
・n:1-4
・mode:0~1 または NORMAL,REVERSE(INVERSE)
ARCCの波形の位相を制御する。通常とデフォルト状態ではmode=0(NORMAL)に相当し、
[ARCCn.WAVEFORM]の項で図解した波形が実行される。一方mode=1(REVERSE)では
[ARCCn.WAVEFORM]の項で図解した波形において@Cを中心に反転した波形が実行される。
例
[ARCC3.PHASE REVERSE] (ARCC3のARCC波形を逆位相モードにする)
----------------------------------------
■音量/ベロシティ
----------------------------------------
[FM][MIDI][ADPCM] 音量
[VOLUME v]
・v:0-127 あるいは -127~+127 (+,-の符号を明記すると相対指定になる)
音量の設定を行う。基本MML @Vに相当する。vの設定範囲は0≦v≦127。数値の頭に
+,-の符号を付記すると相対指定になる。この場合のvの設定範囲は-127≦v≦+127。
例
[VOLUME 42] (音量42を設定)
[VOLUME -12] (それまでの音量を12下げる)
----------------------------------------
[FM][MIDI][ADPCM] 相対音量
[@VOLUME v]
・v:-127~127
音量の設定を相対指定で行う。基本MML @Vに相当する。vの設定範囲は-127≦v≦+127。
[VOLUME]とは違い先頭に+,-をつけなくても相対指定としてみなされる。
例
[@VOLUME 12] (それまでの音量を12上げる)
[@VOLUME -12] (それまでの音量を12下げる)
----------------------------------------
[FM][MIDI][ADPCM] ベロシティ
[VELOCITY u]
・u:-127~+127 あるいは -127~+127 (+,-の符号を明記すると相対指定になる)
ベロシティの設定を行う。基本MML @Uに相当する。uの設定範囲は0≦u≦127。
数値の頭に+,-の符号を付記すると相対指定になる。この場合のuの設定範囲は
-127≦u≦+127。
例
[VELOCITY 42] (ベロシティを42に設定)
[VELOCITY -12] (それまでのベロシティを12下げる)
FM音源パート,ADPCM音源パートでは音量とベロシティの区別はなく同一の効果
として扱われる点に注意。たとえば以下に示す設定はまったく同一の効果を
もたらす設定となる。
例
[VELOCITY 42] (ベロシティを42に設定)
[VOLUME 42] (音量を42に設定)
----------------------------------------
[FM][MIDI][ADPCM] 相対ベロシティ
[@VELOCITY u]
・u:-127~127
ベロシティの設定を相対指定で行う。基本MML @Uに相当する。uの設定範囲は
-127≦u≦+127。[VELOCITY]とは違い先頭に+,-をつけなくても相対指定として
みなされる。
例
[@VELOCITY 12] (それまでのベロシティを12上げる)
[@VELOCITY -12] (それまでのベロシティを12下げる)
----------------------------------------
■EVS(Enhanced Velocity Sequence)
----------------------------------------
[FM][MIDI][ADPCM] EVS振幅
[VELOCITY.DEPTH mode,lv1,lv2,…,lv8]
[VELOCITY.LEVEL mode,lv1,lv2,…,lv8]
・mode:OFF,OPTIONAL,ON
・lv1~lv8:-128~+127
EVSとはZMUSIC Ver.1.0からの機能であるベロシティ・シーケンスを拡張したもので、
発音音符のベロシティをビブラートやARCCのように算術波形やユーザー波形に沿って
変化させる機能である。本命令は、このEVSの変化振幅を設定するもの。
modeとはEVSの動作方式を設定するパラメータ。以下にmodeと対応する動作を示す。
・mode:ON
EVSを以前の設定で再開する。
・mode:OFF
EVSを停止する。
・mode:OPTIONAL
[VELOCITY.DELAY]で設定された音符数毎にlv1からlv8のEVS振幅を切り換えていく。
※EVSは音長という概念がないのでビブラートやARCCのような1/8モードはない。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
lv1~lv8のEVS振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[VELOCITY.LEVEL optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[VELOCITY.LEVEL 1/8 0,0,10,20,30]
( modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。lv6,lv7,lv8は
省略(未設定))。
----------------------------------------
[FM][MIDI][ADPCM] EVSスピード(周期)
[VELOCITY.SPEED sp1,sp2,…,sp8]
・sp1~sp8:1~32767
EVSの振動速度を設定する。最大8つの振幅変化に対応した振動速度変化の設定を行う。
sp1~8は速度値で設定範囲は1≦sp1~sp8≦32767。
実際の波形にどう影響するかは拡張MML[VELOCITY.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1~sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[VELOCITY.SPEED 10,8,20]
(EVSの速度をsp1=10,sp2=8,sp3=20と設定,sp4~sp8は省略(未設定))
----------------------------------------
[FM][MIDI][ADPCM] EVSディレイ
[VELOCITY.DELAY dl0,dl1,…,dl8]
・dl0:0~65535
・dl1~8:0~65535
EVSの動作モードの一つである「OPTIONAL」モードにおけるEVSの振幅切り換え
タイミングを決定する区間時間の設定を行う。
dl0は最初のEVSが実行されるまでのディレイ(遅延時間)に相当し、
音符個数値で指定する。有効範囲は0~65535。初期値は0。
dl1~dl8は次の振幅切り換えまでの区間時間で、これも音符個数値で指定
する。有効範囲は0~65535。初期値は無し。
dl0~dl8の任意のものを省略可能だが、dl1~dl8は初期値を持たないので注意。
例
[VELOCITY.DELAY 10,24,12,12,12,28,28,12,12]
(EVSのディレイをdl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,
dl7=12,dl8=12と設定する。つまり音符dl=10個分はEVSの影響なく発音し11個目から
dl1=24個分最初の振幅値でEVS開始となる。以下同様)
----------------------------------------
[FM][MIDI][ADPCM] EVS波形
[VELOCITY.WAVEFORM w]
・w:0-32767
EVS波形を選択する。
wの0~4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5~7はリザーブ。w=8~32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
VL:振幅 [VELOCITY.DEPTH]([VELOCITY.LEVEL])
VD:ディレイ [VELOCITY.DELAY]
VO:波形基準値 [VELOCITY.ORIGIN]
VS:速度 [VELOCITY.SPEED]
波形番号0:鋸歯波 (振幅が正の時)
VO→____ _
←──→\ \ \ \ ↑
VD \ \ \ \ |
\ \ \ \ |VL
\ \ \ |\↓
| | ̄
VS
波形番号0:鋸歯波 (振幅が負の時)
VO→____ _
←──→ / / / /↑
VD / / / / |VL
/ / / / |
/ / / /| ↓
| |  ̄
VS
波形番号1:矩形波 (振幅が正の時)
VO→____ _
←──→ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
VD |
|VL
__ __ __ __↓
| |  ̄
VS
波形番号1:矩形波 (振幅が負の時)
VO→____ _
←──→  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑
VD |VL
|
__ __ __ __ ↓
| |  ̄
VS
波形番号2:三角波 (振幅が正の時)
VO→____ _
←──→\ /\ / ↑
VD \ / \ / |
|\ / \ / |VL
| \/ \/ ↓
|←→|  ̄
VS
波形番号2:三角波 (振幅が負の時)
VO→____ _
←──→ /\ /\ ↑
VD / \ / \ |
/| \ / \ |VL
/ | \/ \ ↓
|←→|  ̄
VS
波形番号3:鋸歯波シングル (振幅が正の時)
VO→____ _
←──→\ ↑
VD \ |
\ |VL
|\↓
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
VS
波形番号3:鋸歯波シングル (振幅が負の時)
VO→____ _____________
←──→ /↑
VD / |VL
/ |
/| ↓
| |  ̄
VS
波形番号4:ランダム波 (振幅が正の時)
波形番号8~32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+10*VL/32
+5*VL/32 ̄ ̄
 ̄ ̄ __+3*VL/32
VO→──── ──
←──→ __ 0*VL/32
VD -5*VL/32
←→
VS
波形番号4:ランダム波 (振幅が負の時)
波形番号8~32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+5*VL/32
 ̄ ̄ 0*VL/32
VO→──── ──
←──→__  ̄ ̄-3*VL/32
VD -5*VL/32 __
-10*VL/32
←→
VS
----------------------------------------
[FM][MIDI][ADPCM] EVS波形の原点設定
[VELOCITY.ORIGIN org]
・org:0-127
EVS波形の基準値を設定する。この値を中心に[VELOCITY.DEPTH]([VELOCITY.LEVEL])で
設定した振幅で振動する。この値は[VELOCITY.WAVEFORM]の図解中のVOに相当する。
初期値は127。
例
[VELOCITY.ORIGIN 100] (EVSの波形の基準値を100に設定する)
上の設定で(基準点=100)たとえば振幅10のとき
波形=TRIANGLE(三角波)
にするとベロシティは100~90(100-10)区間を交互に変化する
----------------------------------------
[FM][MIDI][ADPCM] EVSスイッチ
[VELOCITY.SWITCH n]
・mode:-1~2 または OFF,OPTIONAL,ON
EVSの動作制御を行う。
modeは[VELOCITY.DEPTH]([VELOCITY.LEVEL])のパラメータのmodeと同等。modeは数値で
与えることもでき、この時は
0=OFF,1=OPTIONAL,2=ON
に対応する。
例
[VELOCITY.SWITCH OPTIONAL]
(EVSをOPTIONALモードでONにする)
[VELOCITY.SWITCH 2]
(EVSを以前のモードでONにする)
----------------------------------------
[FM][MIDI][ADPCM] EVS同期モード
[VELOCITY.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1~65535
EVS波形の初期化(リセット)タイミングの設定を行う。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は小節線([BAR])のときにEVS波形の初期化を行う。
「非同期」にした場合は発音と無関係にEVSを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 小節線に同期して初期化 [0]:しない 1:する
第1ビット ベロシティが指定されている音符 [0]:しない 1:する
があっても波形は進行する
第2ビット 休符があっても波形は進行する [0]:しない 1:する
上から分かるようにmの初期値は0となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[VELOCITY.SYNC %011] (EVSを小節線同期、ベロシティが指定されている音符が
あっても波形は進行する)
----------------------------------------
[FM][MIDI][ADPCM] EVS波形位相制御
[VELOCITY.PHASE mode]
・mode:0~1 または NORMAL,REVERSE(INVERSE)
EVS波形の位相を制御する。通常とデフォルト状態ではmode=0(NORMAL)に相当し、
[VELOCITY.WAVEFORM]の項で図解した波形が実行される。一方mode=1(REVERSE)では
[VELOCITY.WAVEFORM]の項で図解した波形においてVOを中心に反転した波形が実行される。
例
[VELOCITY.PHASE REVERSE] (EVSの実行波形を逆位相モードにする)
----------------------------------------
■パンポット
----------------------------------------
[FM][MIDI][ADPCM] パンポット
[PANPOT p]
・p:0-127 あるいは -127~+127 (+,-の符号を明記すると相対指定になる)
パンポット(定位)を設定する。p=0が最左、p=64が中央、p=127が最右に対応する。
pの設定範囲は0≦p≦127。数値の頭に+,-の符号を付記すると相対指定になる。
この場合のpの設定範囲は-127≦p≦+127。
またpに文字列
L63~L1 M R1~R63
を与えることもできる。文字列パラメータと数値パラメータとの対応は以下に示す。
数値 L63~L1 M R1~R63
文字列 0 ~63 64 65~127
例
[PANPOT R20] (基本MMLの@P84に相当)
----------------------------------------
[FM][MIDI][ADPCM] 相対パンポット
[@PANPOT p]
・p:-127~127
パンポットの設定を相対指定で行う。基本MML @Pに相当する。pの設定範囲は
-127≦p≦+127。[PANPOT]とは違い先頭に+,-をつけなくても相対指定として
みなされる。
例
[@PANPOT 12] (それまでのパンポットを12上げる)
[@PANPOT -12] (それまでのパンポットを12下げる)
----------------------------------------
■操作チャンネル切り換え
----------------------------------------
[FM][MIDI][ADPCM] チャンネル切り換え
[CH_ASSIGN ch]
[ASSIGN ch]
・ch:FM1~FM8
ADPCM1~ADPCM16(またはPCM1~PCM16)
MIDI1-1~MIDI1-16,MIDI2-1~MIDI2-16,MIDI3-1~MIDI3-16,MIDI4-1~MIDI4-16
そのトラックに割り当てられているデバイス、チャンネルを変更する。
ZMUSIC Ver.2.0のMMLであるNや@Nの機能に相当する。
例
[CH_ASSIGN MIDI3-1] (そのトラックをMIDI3-1に変更する)
----------------------------------------
■パターン
----------------------------------------
[FM][MIDI][ADPCM] パターン展開
[PATTERN id]
・id:パターン名文字列
共通コマンド.PATTERN(MEASURE4参照)で登録したパターン名idの
演奏データにリンクする。idにはパターン名を記述する。
例
(i)
.pattern ABC { cdefgab<c> }
.assign TR1,MIDI1
(t1)[PATTERN ABC]
(p)
(cdefgab<c>が演奏される)
なお、PATTERN内のMMLに含まれる音量コマンド(MML:@V,V)は.ASSIGN(MEASURE4)で
指定することができるトラックボリュームの影響を受けない。
例
.assign 1 {MIDI1,60}
^^ ←トラックボリューム
.PATTERN HELLO { @V120 c4 }
.track 1 {
[PATTERN HELLO] ←このときパターンHELLO内のc4は
} トラックボリュームに無関係に
@V120で発音される。
----------------------------------------
[FM][MIDI][ADPCM] パターン展開(埋め込み)
[EMBED id]
・id:パターン名文字列
共通コマンド.PATTERN(MEASURE4参照)で登録したパターン名idの
演奏データを展開する。idにはパターン名を記述する。
[PATTERN]は演奏実行時にパターン部にジャンプする形で演奏されるが
[EMBED]はパターンの内容そのものをそのトラックに埋め込むので、演奏時は
通常の演奏データとまったく変わらない方法で演奏される。
つまり、[PATTERN]は処理速度的には[EMBED]よりも劣るが、演奏データサイズを
削減できる。逆に[EMBED]は処理速度的に[PATTERN]より優れるが演奏データサイズは
大きくなる。
例
(i)
.pattern ABC { cdefgab<c> }
.assign TR1,MIDI1
(t1)[EMBED ABC]
(p)
(cdefgab<c>が演奏される)
なお、PATTERN内のMMLに含まれる音量コマンド(MML:@V,V)は.ASSIGN(MEASURE4)で
指定することができるトラックボリュームの影響を受けない。
例
.assign 1 {MIDI1,60}
^^ ←トラックボリューム
.PATTERN HELLO { @V120 c4 }
.track 1 {
[EMBED HELLO] ←このときパターンHELLO内のc4は
} トラックボリュームに無関係に
@V120で発音される。
----------------------------------------
■テンポ
----------------------------------------
[FM][ADPCM][MIDI] テンポ
[TEMPO t]
・t:1~32767
テンポを設定する。設定範囲は使用タイマーやマスタークロックの値により
変動する。
tは1分間の4分音符の数に相当する。
初期値は120。1つのトラックで指定すると全トラックに影響する。
例
[TEMPO 200] (テンポ200を設定)
----------------------------------------
[FM][ADPCM][MIDI] 相対テンポ
[@TEMPO t]
・t:-32768~32767
テンポを相対的に設定する。演算の結果有効範囲を超えてしまった場合は
設定可能範囲内に自動修正される。
1つのトラックで指定すると全トラックに影響する。
例
[@TEMPO -20] (現在のテンポに20を引いた値を設定)
----------------------------------------
[FM][ADPCM][MIDI] タイマ設定
[TIMER t]
・t:0~16383
割り込み周期を割り込みタイマーへ直接設定する。基本MMLの@Tに相当する。
以下に各タイマーとテンポの相関を表す。(マスタークロック=192の時)
タイマA=1024-(78125/テンポ)
タイマB=256-(78125テンポ)/16
MIDIタイマ=30,000,000/(192*テンポ)
1つのトラックで指定すると全トラックに影響する。
例
[TIMER 38] (タイマ値を38に設定する)
----------------------------------------
■アゴーギク
----------------------------------------
[FM][MIDI][ADPCM] アゴーギク振幅
[AGOGIK.DEPTH mode,lv1,lv2,…,lv8]
[AGOGIK.LEVEL mode,lv1,lv2,…,lv8]
・mode:OFF,1/8,OPTIONAL,ON
・lv1~lv8:-32768~+32767
アゴーギクとは演奏速度(テンポ)を一定の法則にしたがって変動させる効果のことを
いう。ZMUSIC Ver.3.0では、ビブラートやARCCのような算術波形やユーザー波形に
沿ってテンポを変化させることができ、これをアゴーギク機能と呼ぶ。
[AGOGIK.DEPTH]([AGOGIK.LEVEL])はアゴーギクの振幅の設定をlv1~lv8において行う。
modeはアゴーギクの動作方式を設定するパラメータ。以下にmodeと対応する動作を示す。
・mode:ON
アゴーギクを以前の設定で再開する。
・mode:OFF
アゴーギクを停止する。
・mode:1/8
発音する音符の音長の1/8単位毎でlv1からlv8のアゴーギク振幅を次々に変化していく。
・mode:OPTIONAL
発音する音符の音長とは無関係に、任意の時間区間毎でlv1からlv8のアゴーギク振幅を
次々に設定していく。時間区間のシーケンスは後述の[AGOGIK.DELAY]で行う。
modeは省略するとスイッチはそれまでの設定を保持したままとなる。
lv1~lv8のアゴーギク振幅は任意の位置で省略可能で、数値の頭に±を付けることに
よって相対的な値の指定も可能。例えば
[AGOGIK.LEVEL optional 64,,-10,+5]
といった記述ができる。省略した部分は前の値を持続するということになり、
その間は振幅の変更は行われない。
相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の
最大値,最小値に修正される。
例
[AGOGIK.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。
lv6,lv7,lv8は省略(未設定)。
----------------------------------------
[FM][MIDI][ADPCM] アゴーギク振幅増加
[AGOGIK.DEEPEN sw,spd,dpn,rpt]
・sw:OFF,ON
・spd:1~65535
・dpn:-32768~+32767
・rpt:0~32767
アゴーギクの振幅の増加/減少を設定する。
・sw:OFF,ON
アゴーギクの振幅増減機能を有効にするか無効にするかを設定する。
OFFで無効に、ONで有効に設定される。
・spd:増減速度
アゴーギクの振幅の増減速度を設定する。1がもっとも速く、65535がもっとも
遅い。0はエラー。値は絶対音長に相当し、有効範囲は1~65535。
・dpn:振幅増加量
振幅の増減量を設定する。負値は振幅減少、正値は振幅増加に対応する。
値の有効範囲は-32768~+32767。絶対値が大きければ大きいほど、増減は
急激となる。
・rpt:増減回数
振幅はspdの速度でdpn幅増減するが、この処理を何回繰り返すかを設定する。
rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。
値の有効範囲は1~32767。
例
[AGOGIK.DEEPEN ON,6,+8,10]
(増減スピード6で10回振幅を8増加させる)
----------------------------------------
[FM][MIDI][ADPCM] アゴーギク・スピード(周期)
[AGOGIK.SPEED sp1,sp2,…,sp8]
・sp1~sp8:1~32767
アゴーギクの振動速度を設定する。最大8つの振幅変化に対応した振動速度変化の
設定が行える。設定範囲は1≦sp1~sp8≦32767。
実際の波形にどう影響するかは拡張MML[AGOGIK.WAVEFORM]の項で
解説するが、値が小さいほど高速に、値が大きいほど低速に音が振動する。
sp1~sp8の振動速度は任意の位置で省略可能だが、初期値を持たないので注意。
例
[AGOGIK.SPEED 10,8,20]
(sp1=10,sp2=8,sp3=20,sp4~sp8は省略(未設定))
----------------------------------------
[FM][MIDI][ADPCM] アゴーギクディレイ
[AGOGIK.DELAY dl0,dl1,…,dl8]
・dl0:0~65535
・dl1~dl8:0~65535
アゴーギクの動作モードの一つである「OPTIONAL」モードにおけるアゴーギクの振幅
切り換えタイミングを決定する区間時間の設定を行う。
dl0は最初のアゴーギクが実行されるまでのディレイ(遅延時間)に相当し、
絶対音長値で指定する。有効範囲は0~65535。初期値は0。
dl1~dl8は次の振幅切り換えまでの区間時間で、これも絶対音長値で指定
する。有効範囲は0~65535。初期値は無し。
dl0~dl8の任意のものを省略可能だが、dl1~dl8は初期値を持たないので注意。
例
[AGOGIK.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28,dl7=12,dl8=12が設定される。
----------------------------------------
[FM][MIDI][ADPCM] アゴーギク波形選択
[AGOGIK.WAVEFORM w]
・w:0-32767
アゴーギク波形を選択する。
w=0~4はプリセット波形に割り当てられている。
・w=0:鋸歯波
・w=1:矩形波
・w=2:三角波
・w=3:ワンショット鋸歯波
・w=4:ランダム波
またはプリセット波形は
SAW (w=0:鋸歯波に対応)
SQUARE (w=1:矩形波に対応)
TRIANGLE (w=2:三角波に対応)
S.SAW (w=3:ワンショット鋸歯波に対応)
RANDOM (w=4:ランダム波に対応)
という文字パラメータを用いて指定することもできる。
初期値はw=2の三角波。
w=5~7はリザーブ。w=8~32767はユーザー定義波形となる。
ユーザー波形の登録についてはMEASURE3 zm_set_wave_from1(),MEASURE4 「.WAVE_FORM」参照。
以下に波形と各パラメータとの関係を示す。
AL:振幅 [AGOGIK.DEPTH]([AGOGIK.LEVEL])
AD:ディレイ [AGOGIK.DELAY]
T:テンポ [TEMPO]([@TEMPO],T,@T)
AS:速度 [AGOGIK.SPEED]
波形番号0:鋸歯波(SAW) (振幅が正の時)
_
/ / / / /↑AL
T→____/ / / / / ↓
←──→ / / / /  ̄
AD / / / /|
| |
AS
波形番号0:鋸歯波 (振幅が負の時)
\ \ \ \
T→____ \ \ \ \ _
←──→\ \ \ \ \ ↑
AD \ \ \ \ |\↓AL
| | ̄
AS
波形番号1:矩形波 (振幅が正の時)
 ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄
T→____ _
←──→ ↑AL
AD __ __ __ __↓
| |  ̄
AS
波形番号1:矩形波 (振幅が負の時)
_
 ̄ ̄  ̄ ̄  ̄ ̄↑AL
T→____ ↓
←──→  ̄
AD __ __ __
| |
AS
波形番号2:三角波 (振幅が正の時)
_
/\ /\ /↑AL
T→____/ \ / \ / ↓
←──→ \ / \ /|  ̄
AD \/ \/ |
| |
AS
波形番号2:三角波 (振幅が負の時)
/\ /\
T→____ / \ / \ _
←──→\ / \ / |\ ↑AL
AD \/ \/ | \↓
| | ̄
AS
波形番号3:鋸歯波シングル (振幅が正の時)
_____________
/↑AL
T→____/| ↓
←──→| |  ̄
AD AS
波形番号3:鋸歯波シングル (振幅が負の時)
T→____ _
←──→\ ↑
AD |\↓AL
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
AS
波形番号4:ランダム波 (振幅が正の時)
波形番号8~32767:ユーザー波形 (振幅が正の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+10*AL/256
+5*AL/256 ̄ ̄
 ̄ ̄ __+3*AL/256
T→──── ──
←──→ __ 0*AL/256
AD -5*AL/256
←→
AS
波形番号4:ランダム波 (振幅が負の時)
波形番号8~32767:ユーザー波形 (振幅が負の時)
波形データ列が+5,-5,+10,+3,0の場合・・・
+5*AL/256
 ̄ ̄ 0*AL/256
T→──── ──
←──→__  ̄ ̄-3*AL/256
AD -5*AL/256__
-10*AL/256
←→
AS
例
[AGOGIK.WAVEFORM TRIANGLE] (AGOGIKの波形を三角波に設定する)
上の設定でテンポ=100で、たとえば振幅が10のとき
テンポはアゴーギク作用により90~110間を交互に変化する。
----------------------------------------
[FM][MIDI][ADPCM] アゴーギクスイッチ
[AGOGIK.SWITCH mode]
・mode:-1~2 または OFF,1/8,OPTIONAL,ON
アゴーギクの動作制御を行う。modeは[AGOGIK.DEPTH]([AGOGIK.LEVEL])のパラメータ
のmodeと同等。modeは数値で与えることもでき、この時は
0=OFF,-1=1/8,1=OPTIONAL,2=ON
に対応する。
例
[AGOGIK.SWITCH 1/8]
(1/8モードでONにする)
[AGOGIK.SWITCH 2]
(以前のモード(1/8かOPTIONALのいずれか)でONにする)
----------------------------------------
[FM][MIDI][ADPCM] アゴーギク同期モード
[AGOGIK.SYNC m,c]
・m:0=非同期 1=同期 または OFF,ON
・c:1~65535
アゴーギク波形の初期化(リセット)タイミングの設定を行う。
mは同期モードの設定値。0は非同期,1は同期に対応し、0と1はそれぞれ文字列
OFF,ONにも対応する。mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびにアゴーギク波形の初期化を行う。
「非同期」にした場合は発音と無関係にアゴーギクを続行する。
mは数値指定では0,1以外に、以下のように2進数で設定すればより高度な
初期化設定が行える。[]は初期設定を表す。
第0ビット 発音と同時にリセット 0:しない [1]:する
第1ビット タイでもリセット [0]:しない 1:する
第2ビット 休符でもリセット [0]:NO 1:YES
第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
第4ビット 波形は休符でも進行する [0]:NO 1:YES
第5ビット 小節線でリセット [0]:NO 1:YES
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、実際にはmで指定した条件がc回成立すると波形が初期化
されることになる。cの初期値は1。
例
[AGOGIK.SYNC %011] (発音と同時、タイ指定においても初期化する)
----------------------------------------
■各種モード設定
----------------------------------------
[MIDI] タイモード
[TIE_MODE n]
・n:0~1 または NORMAL,SPECIAL(ENHANCED)
MIDIパートのタイの処理モードを設定する。基本MML @Jの機能に相当する。
・n=0 または NORMAL
通常モードに設定する。
c&d
とした場合、通常モードでは & のない
c d
として処理され演奏される。
・n=1 または SPECIAL(ENHANCED)
FM音源パートと互換の動作をするモードに設定される。
c&d
とした場合、FM音源部と同様に、ある音の発音後、その音の持続音(減衰音)で
つぎの音の音程へ変化するようになる。よって、FM音源部での
(c<d)&(d>c)
といった表現や、
(g,e)24&e
@b0,683 c4&c+4
のような表記もFM音源部と同様に機能するようになる(ただし、最初に発音した
音高から1オクターブを超えることはできない)。
初期値はn=0(NORMAL)。
例
[TIE_MODE ENHANCED] (タイモードをFM音源互換モードに設定する)
----------------------------------------
[FM][MIDI][ADPCM] トラックモード
[TRACK_MODE n]
・n:0,1 または NORMAL,RHYTHM
そのトラックのノートオフ処理を行うか省略するかどうかの設定を行う。
基本MML @Rの機能に相当する。
・n=1 または RHYTHM
そのトラックは「ノートオフ省略モード」になり、以後ノートオフ処理をしない。
(詳細は基本MML @Rの項を参照)
ノートオフ省略モードではゲートタイムという概念がなくなるため
基本MML Qコマンドなどの影響を受けず、エンベロープを最後まで実行する。
よって、音を細かく区切ったりなどというニュアンスは再現不可能になる。
・n=0 または NORMAL
ノートオフ処理をする通常のモードに設定する。
初期状態は[TRACK_MODE NORMAL]、つまり「ノートオフをする」モードに
設定されている。
例
[TRACK_MODE RHYTHM] (ノートオフ処理を省略する)
----------------------------------------
[FM][MIDI][ADPCM] トラックディレイ
[TRACK_DELAY n]
・n:0-32768
そのトラックの演奏をnで与える絶対音長分遅らせる。基本MMLの@Wとほぼ同機能の
命令。初期値はn=0で、遅れ無し。
例
[TRACK_DELAY 10] (そのトラックを絶対音長10分演奏を遅らせる)
----------------------------------------
[FM][MIDI][ADPCM] トラック同時発音数設定
[VOICE_RESERVE n]
・n:1~8 (FM音源パート)
・n:1~16 (ADPCM音源パート)
そのトラックで同時に発音する音数を設定する。n>2に設定した場合は、単音を
発音する場合でも別のチャンネルで発音するようになり、MIDI音源のPOLYモードの
ような効果を得ることができる。
FM音源パートはn=1~8、ADPCM音源パートではn=1~16。初期値はFM音源パート,
ADPCM音源パートともにn=1。
例
[VOICE_RESERVE 4] (最大同時発音数を4に設定する)
----------------------------------------
[FM][MIDI][ADPCM] 強制消音
[ALL_SOUND_OFF]
その時点で発音している音を強制的にすべて消音する。
ただし、ダンパーONやキーオフ無しモードに設定されている場合はノートオフ
できない。
例
[ALL_SOUND_OFF]
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 最大同時発音数について ┃
┃ ┃
┃ FM音源パートとADPCM音源の最大同時発音数設定はMIDI音源のDVA(動的音源確保 ┃
┃ ┃
┃方式)とは異なり、シーケンシャルにチャンネルをトラックに割り当てる。 ┃
┃ ┃
┃ たとえば、あるトラックがチャンネル1に割り当てられており、このとき、この ┃
┃ ┃
┃トラックの最大同時発音数を4にした場合、チャンネル1,2,3,4が発音に用いられる。┃
┃ ┃
┃ また、FM音源パートにおいて、あるトラックがチャンネル7に割り当てられており ┃
┃ ┃
┃このとき、このトラックの最大同時発音数を4にした場合はチャンネル7,8,1,2が ┃
┃ ┃
┃発音に用いられる。 ┃
┃ ┃
┃ 以上のことからチャンネルの競合に注意しないと発音した音が途切れしまう ┃
┃ ┃
┃場合がある。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■エコー
----------------------------------------
[FM][MIDI][ADPCM] エコー
[ECHO itv,dec,lpt]
・itv:音長
・dec:-128~127
・lp time:0~65535
設定後の音符をitv単位に分割して演奏する。分割した音符1つ1つに対して
線形な元音量との増減decを与えることができる。1チャンネルで疑似的な
エコー効果を与える時などに使用する。
・itv:音楽的音長
音符を分割する単位を音長(1~32767)で指定する。音長は音楽的音長で指定するが、
数値の頭に'*'を記述すれば絶対音長(1~32767)を指定することもできる。
・dec:減衰相対音量値
分割した音符1つ1つに対して元音量との相対的な差を与えることができる。
分割後n番目の音符の音量の変位はn*decになる。設定範囲は-128~127。
・lp:くりかえし回数
分割を何回繰り返すかを指定する。設定範囲は0~65535。0は無限回を意味する。
また無限回は文字列LOOPでも指定することができる。
例
[ECHO 8,-10,3] c1,,127
この例ではc1は c8 単位に 3回分割される。そして音量変位は-10なので
結果的には
c8,,-10&c8,,-20&c2.,,-30
のように演奏される。
例
[ECHO 8,-10,LOOP] c1
では、分割回数が無限回になっているので c1 をできる限り分割する。よって
演奏結果は
c8,,-10&c8,,-20&c8,,-30&c8,,-40&c8,,-50&c8,,-60&c8,,-70&c8,,-80
のようになる。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ エコー機能の仕様制限事項 ┃
┃ ┃
┃1.連符コマンド({...}の中)に対しては効力を発揮せず ┃
┃ ┃
┃2.音量操作は具体的にはベロシティを対象としている ┃
┃ ┃
┃3.音符に対してのベロシティが省略されている場合は ┃
┃ その音符の直前のベロシティ値が基準となりこの値から ┃
┃ 減衰する(この場合は直前のベロシティから±63の変化に限定される)。 ┃
┃ ┃
┃4.音符にベロシティを絶対値設定している場合はその値を基準として ┃
┃ 減衰する(0~127の範囲内で増減)。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■調号/拍子
----------------------------------------
[FM][MIDI][ADPCM] 調号
[KEY_SIGNATURE k1,k2,…,kn]
・kn:文字列
調号を設定する。どの音階にどの変化記号(♯,♭)がつくのかを設定する。
基本MML [K.SIGN]とまったく同等の機能。
kn部分は変化記号、音階の順に設定し、1個ずつ , で区切る。
例
[K.SIGN +c,+d,+f,+g] (ホ長調)
cdfgに自動的に#(シャープ)がつく
[K.SIGN -a,-b,-d,-e] (変イ長調)
abdeに自動的に♭(フラット)がつく
[K.SIGN -a,+b]
aに♭(フラット)が、bに#(シャープ)が自動的につく
また以下の調名を記述することによって、一般的な調号の設定を行うこともできる。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[K.SIGN G-Major] 変ト長調(cdegabに♭)
ナチュラル記号である '!' を使用すれば一時的に調号の効力をなくすことができる。
また、調号の効力をなす音階に対してさらに#,+(#)や-(♭)が付いた場合は調号と
両方考慮した音階になる。
例
[K.SIGN G-Major] b! (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが ! のためナチュラル指定
となりbで演奏される)
[K.SIGN G-Major] b- (この調だとbには通常ならば♭が付き、b-になる)
(半音下がる)のだが♭のためb--(=a)で 演奏される)
----------------------------------------
[FM][MIDI][ADPCM]
[KEY ky]
・ky:文字列
曲全体の調を設定する。ただし演奏トラックに調号のような効果や機能はなく、
あくまで表向きの設定となる。
kyには以下の調名を与える。
Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major,C+major,C#major
Fmajor,B-major,Bbmajor,E-major,Ebmajor,A-major,Abmajor,D-major,Dbmajor
G-major,Gbmajor,C-major,Cbmajor
Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor,G#minor
D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor,Fminor,B-minor
Bbminor,E-minor,Ebminor,A-minor,Abminor
例
[KEY D#Minor] (嬰二短調)
----------------------------------------
[FM][MIDI][ADPCM] 拍子の設定
[METER m]
・1/1~255/255
曲全体の拍子を設定する。ただし演奏トラックに対してなんの効果ももたらさない。
あくまで表向きの設定となる。設定値mは分数表記を取る。
例
[METER 6/8] (8分の6拍子と設定)
----------------------------------------
■小節
----------------------------------------
[FM][MIDI][ADPCM] 小節線
[---------------] ('-'は幾つでもよい)
[BAR str]
[MEASURE str]
・str:コメント文字列
五線譜でいう小節線に相当する。命令自体に機能はない。
strはZMSを見やすくするためにコメント文字列を与えることができる。
(ただしstrの情報はZMDには残らない)
トラックの初期状態は第0小節に相当する。
例
[MEASURE Aパート]
[----------------]
----------------------------------------
[FM][MIDI][ADPCM] 小節ジャンプ
[JUMP m]
・m:1~
mで表される小節の先頭へジャンプする。ジャンプ後の音源やZMUSICの
内部パラメータはそこまで通常に演奏を行った時と同じになっている。基本MMLの[@]
とほぼ同等の機能を持つ。該当小節がない場合は正常に演奏されない。
例
(i)
.assign TR1,MIDI1
(t1)@1 v12
(t1)[jump2] /第2小節から演奏
(t1)cde /第0小節
(t1)[bar]
(t1)fga /第1小節
(t1)[bar]
(t1)b<cd /第2小節
(t1)[bar]
(p)
(この例では b<cd のみが演奏される。)
----------------------------------------
■演奏制御
----------------------------------------
[FM][MIDI][ADPCM] 再演奏
[REPLAY t]
・t:1-65535
トラックtを強制的に初めから演奏開始にする。基本MML Jに相当する。
演奏が終了していても、演奏中であっても演奏開始を受けたトラックは
最初から演奏を始める。設定範囲は1≦t≦65535。
例
(t1) @1 v15 o4 q8 [REPLAY 2]r2[REPLAY2]
(t2) @1 v15 o4 q8 l8cdef
この例では結果的にはcdef cdefが演奏される。
----------------------------------------
[FM][MIDI][ADPCM] 同期
[SYNCHRONIZE t]
・t:1-65535
トラック間同期通信を行う。基本MML Wに相当する機能を持つ。
tはトラック番号を表し、この値の有効範囲は1~65535。トラックtに対して
同期信号を送信する。同期信号を送られたトラックは直ちに演奏を再開する。
値tを省略すると、これは「同期待ち」の指示となり、直ちに演奏をひとまず中断し
他のトラックから同期信号が送られるまで演奏処理を停止する。
例
(t1) @1 v15 o4 q8 cdef [synchronize 2] ←トラック2へ同期送信
(t2) [synchronize] @1 v15 o4 q8 gab<c
↑どこからか同期信号が来るまで演奏を中断。
この例では結果的にはcdefgab<cが演奏される。
----------------------------------------
■ワーク書き換え
----------------------------------------
[FM][MIDI][ADPCM] ワーク書き換え
[POKE a,d]
・a:-2147483648~2147483647
・d:0~4294967296 または -2147483648~2147483647。
そのトラックの演奏ワークのa番に値dを書き込む。ZMUSICの演奏トラックワークaに
値dを設定する。基本MMLの?に相当する。dは数値の頭に±を付けて相対値の設定も可能。
使用にはZMUSICのワークエリアについての十分な理解を必要とする。
使用方法によっては最悪、暴走してしまうので注意。
例
[POKE -10,+50] (演奏トラックワークの先頭-10の内容に+50加算する)
----------------------------------------
■ダミー
----------------------------------------
[FM][MIDI][ADPCM] ダミー
[DUMMY]
何も行わない命令。ZMSコンパイル後のZMDに1バイトの空きスペースを作ることが
できる。通常の音楽制作には用いる必要はない。
----------------------------------------
■コメント
----------------------------------------
[FM][MIDI][ADPCM] コメント
[COMMENT str]
・str:文字列
コメントを与える。コンパイル後のZMDにもコメント文字列が内部的に埋め込まれる
点が基本MML /と違う。
例
[COMMENT This is a pen.]
----------------------------------------
■イベント
----------------------------------------
[FM][MIDI][ADPCM] イベント
[EVENT category,class,data]
・category:WORD,PICTURE,SOUND
・class:文字列
・data:文字列
演奏データに外部プレイヤー向けのイベント情報を盛り込む時に使用する。
ZMUSIC Ver.3.0自身は本命令の実行は行わないず無視する。
・category:イベント種類
イベントの種類を指定する。現在定められているのは
WORD:歌詞などの文字列データ
PICTURE:グラフィックデータ
SOUND:効果音など
の3つ。
・class:具体的なデータフォーマットタイプ
categoryで指定したイベントの種類を具体的にどのようなデータ形式を用いて
表現するかを文字列で指定する。現時点では各categoryにつき1種類のclass
のみ定義されている。以下にそれらを示す。
category=WORDの時 class=STRING 歌詞文字列
category=PICTUREの時 class=PIC PIC画像ファイルのファイル名文字列
category=SOUNDの時 class=ADPCM ADPCMファイルのファイル名文字列
例
[EVENT WORD,STRING,"豚もおだてりゃ木に登る"] (歌詞設定)
[EVENT PICTURE,PIC,FISH.PIC] (画像データ設定)
[EVENT SOUND,ADPCM,BOMB.PCM] (ADPCMデータ設定)
----------------------------------------
■アフタータッチメッセージ
----------------------------------------
[FM][MIDI][ADPCM] チャンネルプレッシャー
[CH_PRESSURE n]
・n:0~127 または -127~+127 (+,-の符号を明記すると相対指定になる)
チャンネルプレッシャーとはチャンネル単位で設定するアフタータッチ機能をいう。
本命令はMIDIパートにおいてこのチャンネルプレッシャーのMIDIメッセージを送信する
もの。(チャンネルプレッシャーの設定値に対応する効果はMID音源側であらかじめ
設定しておく必要がある。)
設定範囲は0~127,数値の頭に±を書いて相対指定を行うこともできる。この場合の
設定範囲は-127~+127。
なお、FM音源パート、ADPCM音源パートではベロシティの設定(拡張MML [VELOCITY])と
同等の機能を果たす。
例
[CH_PRESSURE 64] (チャンネルプレッシャーを64に設定する)
----------------------------------------
[FM][MIDI][ADPCM] ポリフォニックプレッシャー
[POLYPHONIC_PRESSURE ky,vl]
・ky:0-127 または O-1C~O9G,C-1~G9
・vl:0-127 または -127~+127 (+,-の符号を明記すると相対指定になる)
ポリフォニックプレッシャーとはノート別に設定することができるアフタータッチ
機能のことをいう。本命令はMIDIパートにおいて、このポリフォニックプレッシャーの
MIDIメッセージを送信するもの。(ポリフォニックプレッシャーの設定値に対応する
効果はMID音源側であらかじめ設定しておく必要がある。)
ポリフォニックプレッシャーを与えるノートはkyにて指定する。kyの設定範囲は
0~127。kyはO-1C~O9G,C-1~G9といったMMLで与えることもできる。
ポリフォニックプレッシャー値であるvlの設定範囲は0~127。数値の頭に±を書いて
相対指定を行うこともできる。この場合の設定範囲は-127~+127。
なお、FM音源,音源パートではその時点で発音している指定ノートkyに対して
音量(ベロシティ)vlを設定する動作をする。
例
[POLYPHONIC_PRESSURE o4c,64]
(ノートO4Cにポリフォニックプレッシャー値64を設定する。)
----------------------------------------
■コントロールチェンジ/NRPN
----------------------------------------
[MIDI]([FM][ADPCM]) コントロールチェンジ設定
[CONTROL c,d]
・c:0-127
・d:0-127
MIDI楽器のコントロールチェンジcにデータdを送信する。基本MMLのYに相当する。
FM音源パート,ADPCM音源パートではFM音源レジスタcにデータdを設定する。
例
[CONTROL 11,127]
(コントロールチェンジ11番(EXPRESSION)に127を設定する)
----------------------------------------
[MIDI] NRPN設定
[NRPN MSB,LSB,d1,d2]
・MSB:0-127
・LSB:0-127
・d1:0-127
・d2:0-127
MSB,LSBで表されるMIDI楽器のNRPNアドレスにデータd1,d2を送信する。
基本MMLの@Yに相当する。MSB,LSBはそれぞれNRPNのアドレス上位下位を表す。
d1,d2はデータの上位下位を表す。FM音源パート,ADPCM音源パートでは無視される。
データの下位バイトd2のみ省略が可能。
例
[NRPN 1,8, $40]
(NRPN $0108にデータ$40**を設定。下位バイトは省略)
----------------------------------------
■ホールド(ダンパーペダル)
----------------------------------------
[FM][ADPCM][MIDI] ホールド(ダンパーペダル)
[DAMPER d]
・d:0-127
ダンパーペダルの設定を行う。基本MMLの@Dに相当する。
設定範囲は0-127。一般のMIDI楽器では0-63をダンパーOFF,64-127をダンパーONと
している。ダンパーON,OFFは文字列ON,OFFでも設定が可能。このときはONがd=127,
OFFがd=0に対応する。
例
[DAMPER OFF] (ダンパー解除する)
[DAMPER 68] (ダンパーを値68でONに設定する)
----------------------------------------
■フェーダー
----------------------------------------
[FM][MIDI][ADPCM] トラック・フェーダー
[TRACK_FADER spd,src,dst]
・spd:0-65535
・src:0-128
・dst:0-128
トラックフェーダーの動きを設定する。基本MML \とほぼ同等の機能を持つ。
・spd:移動速度
フェーダーの移動速度を指定する。spd=1がもっとも遅く、spd=65535がもっとも早い。
spd=0は移動解除に相当する。また、移動解除指定はOFFという文字パラメータでも指
定可能。
・src:移動元フェーダーレベル
移動元のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
・src:移動先フェーダーレベル
移動先のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
例
[TRACK_FADER 10,128,0]
(速度10で原音量から無音状態へフェーダーを移動する(いわゆるFADEOUT))
----------------------------------------
[FM][MIDI][ADPCM] チャンネル・フェーダー
[CH_FADER dev ch,spd,src,dst]
・dev:ALL,FM,ADPCM,MIDI1-,MIDI2-,MIDI3-,MIDI4-
・ch:1-16 または ALL
・spd:0-65535
・src:0-128
・dst:0-128
指定したチャンネルのフェーダーの動きを設定する。
・dev:デバイス
操作の対象となる音源デバイス名を文字列にて指定する。デバイス名と対応音源は
以下の通り。
パラメータ 操作対象音源
ALL 全デバイス
FM FM音源
ADPCM(PCM) ADPCM音源
MIDI1- MIDI出力ポート1
MIDI2- MIDI出力ポート2
MIDI3- MIDI出力ポート3
MIDI4- MIDI出力ポート4
・ch:操作対象チャンネル番号
上記のデバイスと合わせて指定する。FM音源パートのチャンネル設定範囲は1≦ch≦8。
ADPCM音源パート、MIDI音源パートのチャンネル設定範囲は1≦ch≦16。
全チャンネルを対象としたい場合は文字列 ALL を指定する。
なお、全デバイスの全チャンネルを操作対象とする場合は ALL-ALLではなく、
ALLと指定する。
・spd:移動速度
フェーダーの移動速度を指定する。spd=1がもっとも遅く、spd=65535がもっとも早い。
spd=0は移動解除に相当する。また、移動解除指定はOFFという文字パラメータでも指
定可能。
・src:移動元フェーダーレベル
移動元のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
・src:移動先フェーダーレベル
移動先のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
例
[CH_FADER MIDI1-10,10,128,0]
(MIDI出力ポート1の10チャンネルを速度10で原音量から無音状態へ
フェーダーを移動する(いわゆるフェードアウト))
[CH_FADER FM-ALL,0,64,64]
(FM音源全チャンネルをフェーダーレベル64に設定し固定する)
[CH_FADER ALL-2,0,64,64]
(全デバイスのチャンネル2をフェーダーレベル64に設定し固定する)
[CH_FADER ALL,10,0,128]
(全デバイスの全チャンネルを無音状態から原音量までフェーダーを
移動させる。(いわゆるフェードイン))
----------------------------------------
[FM][MIDI][ADPCM] マスター・フェーダー
[MASTER_FADER dev,spd,src,dst,...]
・dev:ALL,FM,ADPCM,MIDI1,MIDI2,MIDI3,MIDI4
・spd:0~65535
・src:0-128
・dst:0-128
マスターフェーダーの動きを設定する。
・dev:デバイス
操作の対象となる音源デバイス名を文字列にて指定する。デバイス名と対応音源は
以下の通り。
パラメータ 操作対象音源
ALL 全デバイス
FM FM音源
ADPCM(PCM) ADPCM音源
MIDI1 MIDI出力ポート1
MIDI2 MIDI出力ポート2
MIDI3 MIDI出力ポート3
MIDI4 MIDI出力ポート4
・spd:移動速度
フェーダーの移動速度を指定する。spd=1がもっとも遅く、spd=65535がもっとも早い。
spd=0は移動解除に相当する。また、移動解除指定はOFFという文字パラメータでも指
定可能。
・src:移動元フェーダーレベル
移動元のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
・src:移動先フェーダーレベル
移動先のフェーダーレベルを設定する。設定範囲は0≦src≦128で、0が無音状態、
128は原音量に相当する。
例
[MASTER_FADER MIDI1,10,128,0]
(MIDI出力ポート1を速度10で原音量から無音状態へ
フェーダーを移動する(いわゆるフェードアウト))
[MASTER_FADER FM,0,64,64]
(FM音源をフェーダーレベル64に設定し固定する)
[MASTER_FADER ALL,10,0,128]
(全デバイスを無音状態から原音量までフェーダーを
移動させる。(いわゆるフェードイン))
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ フェーダーについて ┃
┃ ┃
┃ ZMUSIC Ver.3.0ではトラックフェーダー、チャンネルフェーダー、、マスター ┃
┃ ┃
┃フェーダーの3つのフェーダーがあります。このうちトラックフェーダーとチャンネ ┃
┃ ┃
┃ルフェーダーは、操作対象とするフェーダーの指定方法が違うだけで、処理方式も ┃
┃ ┃
┃機能も同一です。つまり、たとえばトラックフェーダーが実行されているトラックの┃
┃ ┃
┃チャンネルに対してフェーダー制御を行うとそれまで実行されていたトラックフェー┃
┃ ┃
┃ダーは無効となりチャンネルフェーダーとして新たな設定で制御されるようになり ┃
┃ ┃
┃ます。 ┃
┃ ┃
┃ 一方マスターフェーダーはまったく前者2つのフェーダーとは無縁で独立した ┃
┃ ┃
┃処理系で実行されます。よってトラックフェーダー/チャンネルフェーダーと ┃
┃ ┃
┃同時に独立した制御を行うことができます。 ┃
┃ ┃
┃ このことからトラックフェーダー/チャンネルフェーダーは、トラック毎の演奏 ┃
┃ ┃
┃表現の一手段として使用し、マスターフェーダーは曲全体の音量制御に利用するのが┃
┃ ┃
┃効果的な使用法といえます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
----------------------------------------
■FM音源専用命令
----------------------------------------
[FM] FM音源レジスタ書き込み
[OPM name,d]
・name:レジスタ名文字列
・d:0-255
nameで表されるFM音源レジスタに値dを書き込む。以下にレジスタ名一覧を示す。
グローバルレジスタ名 NFRQ,NE,LFRQ,PMD,AMD,WF
チャンネルレジスタ名 CON,FB,PAN,AMS,PMS
オペレータレジスタ名 MUL,DT1,TL,AR,KS,1DR,AMS,2DR,DT2,RR,1DL
なお、オペレータ名は OP1.xxx~OP4.xxxのように指定する。
[ADPCM][MIDI]パートで指定された場合は無視される。
例
[OPM LFRQ,150] (FM音源レジスタFRQ($18)に値150を書き込む)
[OPM OP2.TL,10] (FM音源レジスタOP2のTLに値10を書き込む)
----------------------------------------
[FM] FM音源ハードウェアLFO設定
[OPM.LFO wf,sync,spd,pmd,amd,pms,ams]
・wf:0~3 または SAW,SQUARE,TRIANGLE,RANDOM
・sync:0,1 または OFF,ON
・spd:0-255
・pmd:0-127
・amd:0-127
・pms:0-7
・ams:0-3
FM音源のハードウェアLFOのパラメータの設定を行う。ZMUSIC Ver.3.0が提供する
ソフトウェアLFOとは独立してかけることができる。
設定は基本MMLの音色切り換えコマンドである @ で音色パラメータの値に更新
されてしまう。
・wf:波形番号
波形タイプを設定する。設定範囲は0~3。またはSAW,SQUARE,TRIANGLE,RANDOMの
文字パラメータを設定することもできる。以下に数値と文字パラメータの対応を
示す。
wf 文字パラメータ 波形名
0 SAW 鋸歯波
1 SQUARE 矩形波
2 TRIANGLE 三角波
3 RANDOM ランダム波
・sync:LFO初期化設定
キーオンと同期してLFOを初期化するかどうかを設定する。0で初期化しない、
1で初期化する。またOFF,ONの文字パラメータで設定することもできる。
OFFが初期化しない、ONが初期化するに対応する。
・spd:LFO速度
ハードウェアLFOの速度の設定を行う。値の有効範囲は0~255。
・pmd:ピッチモジュレーション振幅
ハードウェアLFOのピッチモジュレーションの振幅の設定を行う。
値の有効範囲は0~127。
・amd:アンプリチュードモジュレーション振幅
ハードウェアLFOのアンプリチュードモジュレーションの振幅の設定を行う。
値の有効範囲は0~127。
・pms:ピッチモジュレーション感度
ハードウェアLFOのピッチモジュレーションの感度の設定を行う。
値の有効範囲は0~7。
・ams:アンプリチュードモジュレーション振幅感度
ハードウェアLFOのアンプリチュードモジュレーションの感度の設定を行う。
値の有効範囲は0~7。
パラメータsync,pms,amsはチャンネル毎に独立した設定が行えるが、
これ以外パラメータ(spd,pmd,amd)の設定は、FM音源の制限仕様から、
全チャンネルに影響してしまう。
例
[OPM.LFO SQUARE,ON,120,88,50,5,2]
波形タイプを矩形波、速度を120,pmd=88,amd=50,pms=5,ams=2として設定する。
----------------------------------------
[FM] FM音源スロットモード設定
[SLOT_SEPARRATION s]
・s=%0000~%1111
FM音源は1チャンネルにつき4つのオペレータを持っておりこの4つのオペレータを
組み合わせて音を作り出している。本命令はそのトラックに割り当てられている
チャンネルの4つのオペレータのうち、どれを発音に用いるかを設定する。この機能を
ZMUSIC Ver.3.0ではスロット・セパレーション(SLOT_SEPARRATION)と呼んでいる。
応用次第によってはFM音源1チャンネルで各オペレータ別々に発音させることも
できる。
パラメータsの設定範囲は%0000~%1111。第0ビットがオペレータ1、第1ビットが
オペレータ2、第2ビットがオペレータ3、第3ビットがオペレータ4に対応する。
ビット=1のオペレータをそのトラックで使用する。s=%0000あるいは、文字列でOFF
を指定した場合は、スロット・セパレーション機能を解除する設定となる。
例
[SLOT_SEPARRATION %1010] (発音にOP2,OP4を使用する)
[SLOT_SEPARRATION OFF] (スロットセパレーション機能を解除)
サンプル
(i)
/ AR DR SR RR SL OL KS ML D1 D2 AM SQU
(@1 31 0 0 15 0 25 0 2 0 0 0
31 29 0 15 0 35 0 3 0 0 0
31 29 0 15 0 35 0 5 0 0 0
31 29 0 15 0 0 0 1 0 0 0
/ AL FB
5 7)
.assign tr1 {fm1,128,1}
.assign tr2 {fm1,128,1}
(t1)@1v16 [slot_separation %1001] cde
(t2)@1v16 [slot_separation %0110] r8cde
(p)
使用しているチャンネルはFM音源のチャンネル1だけだが、あたかも
2チャンネル使用しているような感じが表現できる。
----------------------------------------
[FM] FM音源ノイズ設定
[NOISE n]
・n:0-31 または OFF
FM音源のチャンネル8のオペレータ4(スロット32)からノイズを発生する。
nとノイズの周波数とは
n=4000/(32×ノイズ周波数[kHz])
の関係があり、設定範囲は0≦n≦31。OFFを指定した場合はノイズモード解除とみなす。
----------------------------------------
■ADPCM(PCM)関連
----------------------------------------
[ADPCM] PCMモード設定
[PCM_MODE n]
・n:0~1 または RHYTHM,TONE,TIMBRE
ZMUSIC Ver.3.0ではMPCM.X使用時、ADPCM(PCM)音を楽器音(TIMBRE)として登録する
ことで、FM音源,MIDIパートのように旋律を演奏することができるようになった。この
モードをZMUSIC Ver.3.0ではTIMBREモードと呼ぶ。
本命令はADPCMパートを従来通り各ノートに割り振りって使用するか(これをリズム
モードあるいはトーンモードと呼ぶ)、楽器音として使用するかを選択設定するもの。
・n=0 または RHTHM,TONE
ADPCM音源をリズムモード(トーンモード)で使用する。
・n=1 または TIMBRE
ADPCM音源をティンバーモードで使用する。
初期設定はn=0(RHYTHM,TONE)のリズムモード(トーンモード)。
例
[PCM_MODE TIMBRE] (トラックをTIMBREモードに設定)
----------------------------------------
[ADPCM] 周波数切り換え
[FREQUENCY n]
・n:0~6
内蔵ADPCM音源の再生周波数を変更する。基本MMLの@Fの機能に相当する。
設定範囲は0≦n≦6で、各値は
n= 0: 3.9kHz
1: 5.2kHz
2: 7.8kHz
3:10.4kHz
4:15.6kHz
5:20.8kHz *1
6:31.2kHz *1
に対応する。初期値は4で値省略時は4に自動設定される。
*1の周波数はADPCMチップに対して改造を行ったX680x0に対してのみ有効。
----------------------------------------
■エフェクト
----------------------------------------
[MIDI] エフェクト
[EFFECT rvb,cho,dly]
・rvb:0-127
・cho:0-127
・dly:0-127
・ef2:0-127
・ef5:0-127
MIDI楽器のエフェクトを制御する。基本MML `Eに相当する機能。
コントロールチェンジのエフェクト1(GSではREVERB)へrvbを、
エフェクト3(GSではCHORUS)へchoを、エフェクト4(GSではDELAY)へdlyを出力する。
この他、MIDI規格で定められているエフェクト2,エフェクト5にも値が設定可能。
(よく使われるエフェクト1,3,4を先頭に先頭に持ってきてある)
ただし、楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
パラメータは任意のものを省略できる。パラメータの有効範囲は0~127。
初期値は不定。
FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT 0,10,5] (REVERBを0,CHORUSを10,DELAYを5に設定する)
----------------------------------------
[MIDI] リバーブ
[EFFECT.REVERB rvb]
・rvb:0-127
リバーブ(エフェクト1)のかかり具合を設定する。値の設定範囲は0~127。
MIDI楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
また、FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT.REVERB 127] (リバーブの設定を127にする)
----------------------------------------
[MIDI] コーラス
[EFFECT.CHORUS cho]
・cho:0-127
コーラス(エフェクト3)のかかり具合を設定する。値の設定範囲は0~127。
MIDI楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
また、FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT.CHORUS 127] (コーラスの設定を127にする)
----------------------------------------
[MIDI] ディレイ
[EFFECT.DELAY dly]
・dly:0-127
ディレイ(エフェクト4)のかかり具合を設定する。値の設定範囲は0~127。
MIDI楽器側がこれらのエフェクト制御に対応していない場合は、無意味。
また、FM音源ハートやADPCMパートで使用しても無視される。
例
[EFFECT.DELAY 127] (ディレイの設定を127にする)
----------------------------------------
■MIDIデータ送信
----------------------------------------
[MIDI] MIDIデータ送信
[MIDI_DATA n1,n2,…]
・ni:0-127
MIDIデータの送信を行う。基本MML @Xに相当する機能。
メーカーや楽器の種類には無関係でチェックサム等も発信しない。
データはいくつでも記述可能。各値の設定範囲は0≦xi≦255であるが、256以上の値を
設定した場合は7ビットずつに分割されて送信される。(8ビットでない点に注意)
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
また、"~"で括ればその文字コードを送信できる。ただし、同機能の共通コマンド
.MIDI_DATAとは異なり複数行にパラメータを分けて書くことはできない。
楽器のメモリーを書き換える場合もあるので各自の責任のもとで使用すること。
例
[MIDI_DATA $b0,11,127] ($b0,11,127を送信する)
[MIDI_DATA "ABC"] ($41,$42,$43を送信する)
----------------------------------------
[MIDI] ローランド・エクスクルーシブ
[ROLAND_EXCLUSIVE n1,n2,…]
・ni:0-127
ローランド系の楽器にエクスクルーシブ・メッセージ送信を行う。基本MML Xと同等の
機能。
後述の[INSTRUMENT_ID]でメーカーIDをローランド($41)に設定しておくことが前提。
データの転送方式は「ワン・ウェイ・コミュニケーションのデータセット」
(コマンドID=$12)。
データはいくつでも記述可能。各値の設定範囲は0≦ni≦127であるが、128以上の値を
設定した場合は7ビットずつに分割されて送信される。
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
また、"~"で括ればその文字コードを送信できる。ただし、同機能の共通コマンド
.ROLAND_EXCLUSIVEとは異なり複数行にパラメータを分けて書くことはできない。
ローランドエクスクルーシブに不可欠なチェックサム値は自動的に送信される。
本命例はリバーブパラメータの書き換えや音色のパラメータ単位の書き換えを
行うのに有効だが、楽器のメモリーを直接操作するものなので、各自の責任のもとで
使用すること。
例
[ROLAND_EXCLUSIVE $40,$00,$7f,$00]
[ROLAND_EXCLUSIVE "ABC"]
(ローランドエクスクルーシブとして$40,$00,$7f,$00をMIDI楽器へ送信)
----------------------------------------
[MIDI] ヤマハ・エクスクルーシブ
[YAMAHA_EXCLUSIVE n1,n2,…]
・ni:0-127
ヤマハ系の楽器にエクスクルーシブ・メッセージ送信を行う
後述の[INSTRUMENT_ID]でメーカーIDをヤマハ($43)に設定しておくことが前提。
データの転送方式は「バルク・ダンプ」が使用される。
データはいくつでも記述可能。各値の設定範囲は0≦ni≦127であるが、128以上の値を
設定した場合は7ビットずつに分割されて送信される。
(例:8192→$00,40の様に一般的なMIDI慣例に従い、下位、上位の順に送信される)
また、"~"で括ればその文字コードを送信できる。ただし、同機能の共通コマンド
.YAMAHA_EXCLUSIVEとは異なり複数行にパラメータを分けて書くことはできない。
ヤマハ・エクスクルーシブに不可欠な転送バイト数、チェックサム値は自動的に
送信される。
本命例はリバーブパラメータの書き換えや音色のパラメータ単位の書き換えを
行うのに有効だが、楽器のメモリーを直接操作するものなので、各自の責任のもとで
使用すること。
例
[YAMAHA_EXCLUSIVE $00,$00,$7e,$00]
(ヤマハ・エクスクルーシブとして$00,$00,$7e,$00をMIDI楽器へ送信)
----------------------------------------
[MIDI] MIDI楽器IDの登録
[INSTRUMENT_ID n1,n2,n3]
・n1:0~127
・n2:0~127
・n3:0~127
ZMUSICにそのトラックを演奏する楽器のメーカーID、デバイスID、
モデルIDを設定する(所有しているMIDI楽器の各値にいては楽器のマニュアル
を参照)。これは特に設定しなくても通常のコマンドの動作には全く影響しない。
ただし、
[ROLAND_EXCLUSIVE]
[EFFECT]
に関しては楽器個別の動作をするため、これらのコマンドを使用する前には必ず
設定しなければならない。
n1=メーカーID(例:ROLAND=$41, KORG=$42, YAMAHA=$43)
n2=デバイスID(各ユーザーが楽器に設定した値。特に設定した覚えのない
場合はその楽器のデフォルトのデバイスIDを設定する)
n3=モデルID(例:MT32=$16, SC55=$42 or $45)
初期値なし。
例
[INSTRUMENT_ID $41,$10,$42] (ROLAND,DEV-ID=$10,SC55に設定)
----------------------------------------
■SC55/mkII(SC155/CM300/CM500)専用命令
----------------------------------------
[MIDI] SC55初期化
[SC55_INIT id]
[SC55_RESET id]
[GS_INIT id]
[GS_RESET id]
・id:$00~$7f
SC55の初期化を行なう。
idはSC55のデバイスIDで省略可能、省略時は$10。
例
[SC55_INIT $10]
----------------------------------------
[MIDI] SC55の各パートのボイスリザーブ
[SC55_V_RESERVE id {n1,n2,…,n16}]
[SC55_PARTIAL_RESERVE id {n1,n2,…,n16}]
[GS_V_RESERVE id {n1,n2,…,n16}]
[GS_PARTIAL_RESERVE id {n1,n2,…,n16}]
・id:$00~$7f
・n1~n16:0~127
SC55の各パートのボイスリザーブを行う。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n16)は必ず16個設定しなくてはならない。
またパラメータ各値の総和は音源の同時発音数以内に収める必要がある。
n1~n16はそれぞれパート1~16のボイスリザーブ値に対応し、10番目の
パラメータはリズムパートに対応する。
同機能の共通コマンド.GS_PARTIAL_RESERVEとは異なり複数行にパラメータを
分けて書くことはできない。
(SC55マニュアルp79, またはMEASURE3 zm_gs_partial_reserve()参照))
例
[SC55_PARTIAL_RESERVE $10 {2,4,2,2,0,0,0,0,0,5,0,0,0,0,0,0}]
----------------------------------------
[MIDI] SC55のリバーブパラメータの設定
[SC55_REVERB id {n1,n2,…,n7}]
[GS_REVERB id {n1,n2,…,n7}]
・id:$00~$7f
・n1~n7:0-127
SC55のリバーブパラメータの設定を行う。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n7)は7個まで任意の個数設定可能。同機能の共通コマンド
.GS_REVERBとは異なり複数行にパラメータを分けて書くことはできない。
n1:REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
n2:REVERB CHARACTER ($00~$07)
n3:REVERB PRE-LPF ($00~$07)
n4:REVERB LEVEL ($00~$7F)
n5:REVERB TIME ($00~$7F)
n6:REVERB DELAY FEEDBACK ($00~$7F)
n7:REVERB SEND LEVEL TO CHORUS ($00~$7F)
(SC55マニュアルp79参照)
例
[SC55_REVERB $10 ={4,4,0,88,70,0,0}]
----------------------------------------
[MIDI] SC55のコーラスパラメータの設定
[SC55_CHORUS id {n1,n2,…,n8}]
[GS_CHORUS id {n1,n2,…,n8}]
・id:$00~$7f
・n1~n8:0-127
SC55のコーラスパラメータの設定を行う。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n8)は8個まで任意の個数設定可能。同機能の共通コマンド
.GS_CHORUSとは異なり複数行にパラメータを分けて書くことはできない。
n1:CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
n2:CHORUS PRE-LPF ($00~$07)
n3:CHORUS LEVEL ($00~$7F)
n4:CHORUS FEEDBACK ($00~$7F)
n5:CHORUS DELAY ($00~$7F)
n6:CHORUS RATE ($00~$7F)
n7:CHORUS DEPTH ($00~$7F)
n8:CHORUS SEND LEVEL TO REVERB ($00~$7F)
(SC55マニュアルp79参照)
例
[SC55_CHORUS $10 ={2,0,100,8,80,3,19,0}]
----------------------------------------
[MIDI] SC55のパートのパラメータを設定
[SC55_PART_SETUP pt,id {n1,n2,…,n119}]
[GS_PART_SETUP pt,id {n1,n2,…,n119}]
[SC55_PART_PARAMETER pt,id {n1,n2,…,n119}]
[GS_PART_PARAMETER pt,id {n1,n2,…,n119}]
・pt:1~16
・id:0-127
・n1~n119:0-127
SC55のパートのパラメータを設定する。
ptはパートナンバーを表し、1≦pt≦16で省略は不可。またパートナンバー=10は
リズムパートに対応する。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n119)は119個まで任意の個数設定可能。ただし、同機能の
共通コマンド.GS_PART_SETUPとは異なり複数行にパラメータを分けて書くことは
できない。
n1:Rx CHANNEL (1~16,17=OFF)
n2:Rx PITCH BEND (0~1:OFF/ON)
n3:Rx CH PRESSURE(CAf) (0~1:OFF/ON)
n4:Rx PROGRAM CHANGE (0~1:OFF/ON)
n5:Rx CONTROL CHANGE (0~1:OFF/ON)
n6:Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
n7:Rx NOTE MESSAGE (0~1:OFF/ON)
n8:Rx RPN (0~1:OFF/ON)
n9:Rx NRPN (0~1:OFF/ON)
n10:Rx MODURATION (0~1:OFF/ON)
n11:Rx VOLUME (0~1:OFF/ON)
n12:Rx PANPOT (0~1:OFF/ON)
n13:Rx EXPRESSION (0~1:OFF/ON)
n14:Rx HOLD1 (0~1:OFF/ON)
n15:Rx PORTAMENTO (0~1:OFF/ON)
n16:Rx SOSTENUTO (0~1:OFF/ON)
n17:Rx SOFT (0~1:OFF/ON)
n18:MONO/POLY MODE (0~1:MONO/POLY)
n19:ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
n20:USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
n21:PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
n22:PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
n23:PITCH OFFSET FINE(lower) 〃
n24:PART LEVEL (0~127)
n25:VELOCITY SENSE DEPTH (0~127)
n26:VELOCITY SENSE OFFSET (0~127)
n27:PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
n28:KEY RANGE LOW (0~127:C-1~G9)
n29:KEY RANGE HIGH (0~127:C-1~G9)
n30:CC1 CONTROL NUMBER (0~127)
n31:CC2 CONTROL NUMBER (0~127)
n32:CHORUS SEND DEPTH (0~127)
n33:REVERB SEND DEPTH (0~127)
n34:Vibrato rate ($0E~$72:-50~+50)
n35:Vibrato depth ($0E~$72:-50~+50)
n36:TVF cutoff freq. ($0E~$50:-50~+16)
n37:TVF resonance ($0E~$72:-50~+50)
n38:TVF&TVA Env.attack ($0E~$72:-50~+50)
n39:TVF&TVA Env.decay ($0E~$72:-50~+50)
n40:TVF&TVA Env.release ($0E~$72:-50~+50)
n41:Vibrato delay ($0E~$72:-50~+50)
n42:SCALE TUNING C ($00~$7F:-64~+63[cent])
n43:SCALE TUNING C# ($00~$7F:-64~+63[cent])
n44:SCALE TUNING D ($00~$7F:-64~+63[cent])
n45:SCALE TUNING D# ($00~$7F:-64~+63[cent])
n46:SCALE TUNING E ($00~$7F:-64~+63[cent])
n47:SCALE TUNING F ($00~$7F:-64~+63[cent])
n48:SCALE TUNING F# ($00~$7F:-64~+63[cent])
n49:SCALE TUNING G ($00~$7F:-64~+63[cent])
n50:SCALE TUNING G# ($00~$7F:-64~+63[cent])
n51:SCALE TUNING A ($00~$7F:-64~+63[cent])
n52:SCALE TUNING A# ($00~$7F:-64~+63[cent])
n53:SCALE TUNING B ($00~$7F:-64~+63[cent])
n54:MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
n55:MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n56:MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n57:MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n58:MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n59:MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n60:MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n61:MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n62:MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n63:MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n64:MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n65:BEND PITCH CONTROL ($28~$58:-24~+24[semitone])
n66:BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n67:BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n68:BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n69:BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n70:BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n71:BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n72:BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n73:BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n74:BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n75:BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n76:CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
n77:CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n78:CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n79:CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n80:CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n81:CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n82:CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n83:CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n84:CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n85:CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n86:CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n87:PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
n88:PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n89:PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n90:PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n91:PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n92:PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n93:PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n94:PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n95:PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n96:PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n97:PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n98:CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
n99:CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n100:CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n101:CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n102:CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n103:CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n104:CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n105:CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n106:CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n107:CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n108:CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n109:CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
n110:CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n111:CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n112:CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n113:CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n114:CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n115:CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n116:CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n117:CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n118:CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n119:CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
(SC55マニュアルp75,p79~80参照)
例
[SC55_PART_SETUP 16 {17,1,1,1}]
----------------------------------------
[MIDI] SC55のドラムセットの設定
[SC55_DRUM_SETUP map,key,id {n1,n2,…,n8}]
[GS_DRUM_SETUP map,key,id {n1,n2,…,n8}]
・map:0,1
・key:0-127
・id:0-127
・n1~n8:0-127
SC55のドラムセットの設定を変える。
mapはマップナンバーを表し設定範囲は0,1。
keyはノートナンバーを表し設定範囲は0≦key≦127。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n8)は8個まで任意の個数設定可能。同機能の共通コマンド
.GS_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:PLAY KEY NUMBER (0~127)
n2:LEVEL (0~127)
n3:ASSIGN GROUP NUMBER (0:NON,1~127)
n4:PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
n5:REVERB DEPTH (0~127:0.0~1.0)
n6:CHORUS DEPTH (0~127:0.0~1.0)
n7:Rx NOTE OFF (0~1:OFF/ON)
n8:Rx NOTE ON (0~1:OFF/ON)
(SC55マニュアルp82参照)
例
[GS_DRUM_SETUP 0,24,$10 {24,127,0,0,10,15,0,1}]
----------------------------------------
[MIDI] SC55のドラムセット名の設定
[SC55_DRUM_NAME map,id str]
[GS_DRUM_NAME map,id str]
・map:0,1
・id:0-127
・str:文字列
SC55のドラムセット名の設定を行う。
mapはマップナンバーを表し設定範囲は0,1。
idはSC55のデバイスIDで省略可能、省略時は$10。
strはドラセット名を表す文字列で、"~"で括り12文字以内で指定する。
(SC55マニュアルp82参照)
例
[GS_DRUM_NAME 0,$10 "USER SET"]
----------------------------------------
[MIDI] SC55コンソールへの文字列表示
[SC55_PRINT id,str]
[GS_PRINT id,str]
・id:0-127
・str:文字列
SC55のコンソールに文字列を表示する。
文字列strは"~"で括り32文字以内に収めなければならない。
idはSC55のデバイスIDで省略可能、省略時は$10。
例
[GS_PRINT $10,"HELLO"]
----------------------------------------
[MIDI] SC55グラフィックディスプレイへのドットパターン表示
[SC55_DISPLAY id {n1,n2,…,n16}]
[GS_DISPLAY id {n1,n2,…,n16}]
・id:0-127
・n1~n16:%0000000000000000~%1111111111111111
SC55のグラフィックディスプレイにドットパターン(16x16)を表示する。
idはSC55のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n16)は必ず16個。同機能の共通コマンド.GS_DISPLAYとは異なり
複数行にパラメータを分けて書くことはできない。
n1:1段目のドットパターン
n2:2段目のドットパターン
:
:
n16:16段目のドットパターン
例
[GS_DISPLAY $10 {$ffff,9,8,7,65,40,0,0,0,1,2,3,4,5,$8000,$ffff}]
----------------------------------------
■GM音源専用命令
----------------------------------------
[MIDI] GM音源初期化
[GM_SYSTEM_ON]
GM音源を初期化状態にリセットする。パラメータは無し。
例
[GM_SYSTEM_ON]
----------------------------------------
■SC88/SC88VL専用命令
----------------------------------------
[MIDI] SC88モード設定
[SC88_MODE md,id]
[SC88_MODE_SET md,id]
・md:1,2
・id:0-127
SC88のモードの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
mdはモード値を表し、md=1でSingleモード、md=2でDoubleモードが設定される。
(SC88VLマニュアルp77参照)
例
[SC88_MODE 1,$10]
----------------------------------------
[MIDI] SC88リバーブ・パラメータの設定
[SC88_REVERB id {n1,n2,...,n8}]
・id:0-127
・n1~n8:下記参照
SC88のリバーブ・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n8)は8個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_REVERBとは異なり複数行にパラメータを分けて書くことはできない。
n1:REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
n2:REVERB CHARACTER ($00~$07)
n3:REVERB PRE-LPF ($00~$07)
n4:REVERB LEVEL ($00~$7F)
n5:REVERB TIME ($00~$7F)
n6:REVERB DELAY FEEDBACK ($00~$7F)
n7:REVERB SEND LEVEL TO CHORUS ($00~$7F/SC88ではダミー)
n8:REVERB PRE-DELAY TIME ($00~$7F)
(SC88VLマニュアルp77参照)
例
[SC88_REVERB $10 {0,0,127,10,10,0,127}]
----------------------------------------
[MIDI] SC88コーラス・パラメータの設定
[SC88_CHORUS id {n1,n2,...,n9}]
・id:0-127
・n1~n9:下記参照
SC88のコーラス・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n9)は9個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_CHORUSとは異なり複数行にパラメータを分けて書くことはできない。
n1:CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
n2:CHORUS PRE-LPF ($00~$07)
n3:CHORUS LEVEL ($00~$7F)
n4:CHORUS FEEDBACK ($00~$7F)
n5:CHORUS DELAY ($00~$7F)
n6:CHORUS RATE ($00~$7F)
n7:CHORUS DEPTH ($00~$7F)
n8:CHORUS SEND LEVEL TO REVERB ($00~$7F)
n9:CHORUS SEND LEVEL TO DELAY ($00~$7F)
(SC88VLマニュアルp78参照)
例
[SC88_CHORUS $10 {0,3,60,10,10,10,24,30,30}]
----------------------------------------
[MIDI] SC88ディレイ・パラメータの設定
[SC88_DELAY id {n1,n2,...,n11}]
・id:0-127
・n1~n11:下記参照
SC88のディレイ・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n11)は11個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_DELAYとは異なり複数行にパラメータを分けて書くことはできない。
n1:DELAY MACRO 00:Delay1,01:Delay2,02:Delay3
03:Delay4,04:Pan Delay1
05:Pan Delay2,06:Pan Delay3,07:Pan Delay4
08:Delay to Reverb,09:Pan Repeat
n2:DELAY PRE-LPF ($00~$07)
n3:DELAY TIME CENTER ($01~$73:0.1ms~sec)
n4:DELAY TIME RATIO LEFT ($01~$78:4~500%)
n5:DELAY TIME RATIO RIGHT ($01~$78:4~500%)
n6:DELAY LEVEL CENTER ($00~$7F)
n7:DELAY LEVEL LEFT ($00~$7F)
n8:DELAY LEVEL RIGHT ($00~$7F)
n9:DELAY LEVEL ($00~$7F)
n10:DELAY FEEDBACK ($00~$7F:-64~+63)
n11:DELAY SENDLEVEL TO REVERB ($00~$7F)
(SC88VLマニュアルp78参照)
例
[SC88_DELAY $10 {0,3,10,22,22,64,64,64,64,64,30}]
----------------------------------------
[MIDI] SC88イコライザ・パラメータの設定
[SC88_EQUALIZER id {n1,n2,n3,n4}]
・id:0-127
・n1~n4:下記参照
SC88のイコライザ・パラメータの設定を行う。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n4)は4個以内で任意の個数設定可能。同機能の共通コマンド
.SC88_EQUALIZERとは異なり複数行にパラメータを分けて書くことはできない。
n1:EQ LOW FREQ (0,1:200Hz,400Hz)
n2:EQ LOW GAIN ($34~$4c:-12~+12dB)
n3:EQ HIGH FREQ (0,1:3kHz,6kHz)
n4:EQ HIGH GAIN ($34~$4c:-12~+12dB)
(SC88VLマニュアルp78参照)
例
[SC88_EQUALIZER $10 {0,$40,1,$40}]
----------------------------------------
[MIDI] SC88パート・パラメータの設定
[SC88_PART_SETUP pt,id {n1,n2,...,n127}]
[SC88_PART_PARAMETER pt,id {n1,n2,...,n127}]
・pt:1~16
・id:0-127
・n1~n127:下記参照
SC88パート・パラメータの設定する。
ptはパートナンバーを表し、1≦pt≦16で省略は不可。またパートナンバー=10は
リズムパートに対応する。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n127)は127個まで任意の個数設定可能。ただし、同機能の
共通コマンド.SC88_PART_SETUPとは異なり複数行にパラメータを分けて書くことは
できない。
n1:Rx CHANNEL (1~16,17=OFF)
n2:Rx PITCH BEND (0~1:OFF/ON)
n3:Rx CH PRESSURE(CAf) (0~1:OFF/ON)
n4:Rx PROGRAM CHANGE (0~1:OFF/ON)
n5:Rx CONTROL CHANGE (0~1:OFF/ON)
n6:Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
n7:Rx NOTE MESSAGE (0~1:OFF/ON)
n8:Rx RPN (0~1:OFF/ON)
n9:Rx NRPN (0~1:OFF/ON)
n10:Rx MODURATION (0~1:OFF/ON)
n11:Rx VOLUME (0~1:OFF/ON)
n12:Rx PANPOT (0~1:OFF/ON)
n13:Rx EXPRESSION (0~1:OFF/ON)
n14:Rx HOLD1 (0~1:OFF/ON)
n15:Rx PORTAMENTO (0~1:OFF/ON)
n16:Rx SOSTENUTO (0~1:OFF/ON)
n17:Rx SOFT (0~1:OFF/ON)
n18:MONO/POLY MODE (0~1:MONO/POLY)
n19:ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
n20:USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
n21:PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
n22:PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
n23:PITCH OFFSET FINE(lower) 〃
n24:PART LEVEL (0~127)
n25:VELOCITY SENSE DEPTH (0~127)
n26:VELOCITY SENSE OFFSET (0~127)
n27:PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
n28:KEY RANGE LOW (0~127:C-1~G9)
n29:KEY RANGE HIGH (0~127:C-1~G9)
n30:CC1 CONTROL NUMBER (0~127)
n31:CC2 CONTROL NUMBER (0~127)
n32:CHORUS SEND LEVEL (0~127)
n33:REVERB SEND LEVEL (0~127)
n34:Rx BANK SELECT (0:OFF,1:ON)
n35:Rx BANK SELECT LSB (0:OFF,1:ON)
n36:PITCH FINE TUNE(Upper) ($00 00~$40 00~$7f 7f:-100~0~+100)
n37:PITCH FINE TUNE(Lower)
n38:DELAY SEND LEVEL (0~127)
n39:Vibrato rate ($00~$7f:-64~+63)
n40:Vibrato depth ($00~$7f:-64~+63)
n41:TVF cutoff freq. ($00~$7f:-64~+63)
n42:TVF resonance ($00~$7f:-64~+63)
n43:TVF&TVA Env.attack ($00~$7f:-64~+63)
n44:TVF&TVA Env.decay ($00~$7f:-64~+63)
n45:TVF&TVA Env.release ($00~$7f:-64~+63)
n46:Vibrato delay ($00~$7f:-64~+63)
n47:SCALE TUNING C ($00~$7F:-64~+63[cent])
n48:SCALE TUNING C# ($00~$7F:-64~+63[cent])
n49:SCALE TUNING D ($00~$7F:-64~+63[cent])
n50:SCALE TUNING D# ($00~$7F:-64~+63[cent])
n51:SCALE TUNING E ($00~$7F:-64~+63[cent])
n52:SCALE TUNING F ($00~$7F:-64~+63[cent])
n53:SCALE TUNING F# ($00~$7F:-64~+63[cent])
n54:SCALE TUNING G ($00~$7F:-64~+63[cent])
n55:SCALE TUNING G# ($00~$7F:-64~+63[cent])
n56:SCALE TUNING A ($00~$7F:-64~+63[cent])
n57:SCALE TUNING A# ($00~$7F:-64~+63[cent])
n58:SCALE TUNING B ($00~$7F:-64~+63[cent])
n59:MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
n60:MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n61:MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n62:MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n63:MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n64:MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n65:MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n66:MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n67:MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n68:MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n69:MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n70:BEND PITCH CONTROL ($40~$58:-24~+24[semitone])
n71:BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n72:BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n73:BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n74:BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n75:BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n76:BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n77:BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n78:BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n79:BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n80:BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n81:CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
n82:CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n83:CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n84:CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n85:CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n86:CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n87:CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n88:CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n89:CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n90:CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n91:CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n92:PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
n93:PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n94:PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n95:PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n96:PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n97:PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n98:PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n99:PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n100:PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n101:PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n102:PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n103:CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
n104:CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n105:CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n106:CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n107:CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n108:CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n109:CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n110:CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n111:CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n112:CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n113:CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n114:CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
n115:CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
n116:CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
n117:CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n118:CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
n119:CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
n120:CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
n121:CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
n122:CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
n123:CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
n124:CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
n125:TONE MAP NUMBER (0:SELECTED,1:SC55,2:SC88)
n126:TONE MAP0 NUMBER (1:SC55,2:SC88)
n127:EQ ON/OFF (0:OFF,1:ON)
(SC88VLマニュアルp79~p81参照)
例
[SC88_PART_SETUP 16 {17,1,1,1}]
----------------------------------------
[MIDI] SC88のドラム・セットアップ設定
[SC88_DRUM_SETUP map,key,id {n1,n2,...,n9}]
・map:0,1
・key:0-127
・id:0-127
・n1~n8:0-127
SC88のドラム・セットアップの設定を行う。
mapはマップナンバーを表し設定範囲は0,1。
keyはノートナンバーを表し設定範囲は0≦key≦127。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n9)は9個まで任意の個数設定可能。同機能の共通コマンド
.SC88_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:PLAY KEY NUMBER (0~127)
n2:LEVEL (0~127)
n3:ASSIGN GROUP NUMBER (0:NON,1~127)
n4:PANPOT (0:RANDOM,0(LEFT)~64~127(RIGHT))
n5:REVERB DEPTH (0~127:0.0~1.0)
n6:CHORUS DEPTH (0~127:0.0~1.0)
n7:Rx NOTE OFF (0~1:OFF/ON)
n8:Rx NOTE ON (0~1:OFF/ON)
n9:DELAY SEND LEVEL (0-127:0.0~1.0)
(SC88VLマニュアルp82参照)
例
[SC88_DRUM_SETUP $10 {42,127,0,64,64,64,1,1,24}]
----------------------------------------
[MIDI] SC88のドラムセット名の設定
[SC88_DRUM_NAME map,id str]
・map:0,1 または USER65,USER66
・id:0-127
・str:文字列
SC88のドラムセット名の設定を行う。
mapはマップナンバーを表し設定範囲は0,1。ユーザードラムセットの名前を設定する
場合にはUSER65,またはUSER66という文字列を与えて指定する。
idはSC88のデバイスIDで省略可能、省略時は$10。
strはドラセット名を表す文字列で、"~"で括り12文字以内で指定する。
(SC88マニュアルp82参照)
例
[SC88_DRUM_NAME USER66,$10 "USER SET"]
----------------------------------------
[MIDI] SC88ユーザー音色の設定
[SC88_USER_INST bk,pgm,id {n1,n2,...,n11}]
・bk:0-1
・pgm:1-128
・id:0-127
・n1~n11:下記参照
SC88ユーザー音色の設定を行う。
bkは設定先音色バンク番号を表し、設定範囲は0,1。bk=0がバリエーション番号64,
bk=1がバリエーション番号65に対応する。
pgmは設定先音色番号で、設定範囲は1~128。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n11)は11個まで任意の個数設定可能。同機能の共通コマンド
.SC88_USER_INSTとは異なり複数行にパラメータを分けて書くことはできない。
n1:SOURCE TONE#(MAP) (1,2)
n2:BANK NUMBER MSB (0~127)
n3:PROGRAM NUMBER (1~128)
n4:Vibrato rate ($00~$7f:-64~+63)
n5:Vibrato depth ($00~$7f:-64~+63)
n6:TVF cutoff freq. ($00~$7f:-64~+63)
n7:TVF resonance ($00~$7f:-64~+63)
n8:TVF&TVA Env.attack ($00~$7f:-64~+63)
n9:TVF&TVA Env.decay ($00~$7f:-64~+63)
n10:TVF&TVA Env.release ($00~$7f:-64~+63)
n11:Vibrato delay ($00~$7f:-64~+63)
(SC88VLマニュアルp82参照)
例
[SC88_USER_INST 0,4,$10 {1,0,10,64,64,64,64,64,64,64,64}]
----------------------------------------
[MIDI] SC88のユーザードラムセットの設定
[SC88_USER_DRUM st,nt,id {n1,n2,...,n12}]
・st:0-1
・nt:0-127
・id:0-127
・n1~n12:下記参照
stは設定先ドラムセット番号で設定範囲は0,1。st=0がドラムセット番号65、
st=1がドラムセット番号66に対応する。
ntは登録先ノート番号で設定範囲は0-127。
idはSC88のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n12)は12個まで任意の個数設定可能。同機能の共通コマンド
.SC88_DRUM_INSTとは異なり複数行にパラメータを分けて書くことはできない。
n1:PLAY KEY NUMBER (0~127)
n2:LEVEL (0~127)
n3:ASSIGN GROUP NUMBER (0:NON,1~127)
n4:PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
n5:REVERB DEPTH (0~127:0.0~1.0)
n6:CHORUS DEPTH (0~127:0.0~1.0)
n7:Rx NOTE OFF (0~1:OFF/ON)
n8:Rx NOTE ON (0~1:OFF/ON)
n9:DELAY SEND LEVEL (0-127:0.0~1.0)
n10:SOURCE DRUM SET#(MAP) (1-2)
n11:PROGRAM NUMBER (0-127)
n12:SOURCE NOTE NUMBER (0-127)
(SC88VLマニュアルp82参照)
例
[SC88_USER_DRUM 0,32,$10 {24,127,0,64,10,10,0,1,10,1,10,24}]
----------------------------------------
■MT32/CM32L/CM64/CM500専用命令
----------------------------------------
[MIDI] MT32の初期化
[MT32_INIT id]
[MT32_RESET id]
・id:0-127
MT32の初期化を行なう
idはMT32のデバイスIDで省略可能、省略時は$10。
例
[MT32_INIT $10]
----------------------------------------
[MIDI] MT32の各パートのパーシャルリザーブ
[MT32_P_RESERVE id {n1,n2,…,n9}]
[MT32_PARTIAL_RESERVE id {n1,n2,…,n9}]
・id:0-127
・n1~n9:0-127
MT32の各パートのパーシャルリザーブを行う。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n9)は必ず9個なければならない。パラメータ各値の総和は32以内。
n1~n8はパート1~8のパーシャルリザーブ値に対応し、n9はリズムパートに対応する。
同機能の共通コマンド.MT32_PARTIAL_RESERVEとは異なり複数行にパラメータを分けて
書くことはできない。
例
[MT32_PARTIAL_RESERVE $10 {2,2,2,2,0,0,1,2,4}]
----------------------------------------
[MIDI] MT32リバーブパラメータの設定
[MT32_REVERB id {n1,n2,n3}]
id:0-127
n1~n3:0-127
MT32のリバーブパラメータを設定する。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n3)は3個まで任意の個数設定可能。同機能の共通コマンド
.MT32_REVERBとは異なり複数行にパラメータを分けて書くことはできない。
n1:REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
n2:REVERB TIME (0~7)
n3:REVERB LEVEL (0~7)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_REVERB $10 {3,3,5}]
----------------------------------------
[MIDI] MT32各パートのMIDIチャンネル設定
[MT32_PART_SETUP id {n1,n2,…,n9}]
・id:0-127
・n1~n9:0-127
MT32の各パートのMIDIチャンネルを設定する。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n9)は9個まで任意の個数設定可能。
n1~n8はパート1~8のMIDIチャンネル値に対応し、n9はリズムパートに対応する。
同機能の共通コマンド.MT32_PART_SETUPとは異なり複数行にパラメータを分けて書く
ことはできない。
パラメータ(n1~n9)はMIDIチャンネル値なので1~16まで有効。
ただし、0あるいは17以上を与えた場合はそのパートを無効(OFF)とみなす。
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_PART_SETUP $10 {2,3,4,5,6,7,8,9,10}]
----------------------------------------
[MIDI] MT32リズムキットの設定
[MT32_DRUM_SETUP n,id {n1,n2,n3,n4}]
[MT32_RHYTHM_SETUP n,id {n1,n2,n3,n4}]
・n:24~87
・id:0-127
MT32のリズムキットの設定を変更する。
nは変更対象ノートナンバーを表し、設定範囲は24≦n≦87。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n4)は4個まで任意の個数設定可能。同機能の共通コマンド
.MT32_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:TIMBRE (0~63:i1~64,64~127:r1~64)
n2:OUTPUT LEVEL (0~100)
n3:PANPOT (0~14)
n4:REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_DRUM_SETUP 24,$10 {10,100,12,1}]
----------------------------------------
[MIDI] MT32コモンパラメータの設定
[MT32_COMMON n,id {str,n1,n2,n3,n4}]
・n:1-64
・id:0-127
・str:文字列
・n1~n4:0-127
MT32の音色のコモンパラメータを設定する。
nは設定対象ティンバー番号で、設定範囲は1~64。
idはMT32のデバイスIDで省略可能、省略時は$10。
strは音色名で、"~"で括り、10文字以内(省略不可)の文字列で指定する。
パラメータ(n1~n4)は4個まで任意の個数設定可能。同機能の共通コマンド
.MT32_COMMONとは異なり複数行にパラメータを分けて書くことはできない。
n1:Structure of Partial#1&2 (0~12:1~13)
n2:Structure of Partial#3&4 (0~12:1~13)
n3:PARTIAL MUTE (0~15)
n4:ENV MODE (0~1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34, CM64マニュアルp29参照)
例
[MT32_COMMON 1,$10 {1,1,0,0}]
----------------------------------------
[MIDI] MT32パーシャルパラメータの設定
[MT32_PARTIAL n,p,id {n1,n2,…,n58}]
・n:1-64
・p:1-4
・id:0-127
・n1~n58:0-127
MT32の音色のパーシャルパラメータを設定する。
nは設定対象ティンバー番号で設定範囲は1≦n≦64。
pは設定対象パーシャルナンバーで設定範囲は1≦p≦4。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n58)は58個まで任意の個数設定可能。同機能の共通コマンド
MT32_PARTIALとは異なり複数行にパラメータを分けて書くことはできない。
n1:WG PITCH COARSE (0~96:C1,C#1,~,C9)
n2:WG PITCH FINE (0~100:-50~+50)
n3:WG PITCH KEYFOLLOW (0~16:-1,-1/2,-1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2,s1,s2)
n4:WG PITCH BENDER SW (0~1:OFF/ON)
n5:WG WAVEFORM/PCM BANK (0~3:SQU1,SAW1,SQU2,SAW2)
n6:WG PCM WAVE (0~127:1~128)
n7:WG PULSE WIDTH (0~100)
n8:WG PW VELO SENS (0~14:-7~+7)
n9:P-ENV DEPTH (0~10)
n10:P-ENV VELO SENS (0~3)
n11:P-ENV TIME KEYF (0~4)
n12:P-ENV TIME 1 (0~100)
n13:P-ENV TIME 2 (0~100)
n14:P-ENV TIME 3 (0~100)
n15:P-ENV TIME 4 (0~100)
n16:P-ENV LEVEL 0 (0~100:-50~+50)
n17:P-ENV LEVEL 1 (0~100:-50~+50))
n18:P-ENV LEVEL 2 (0~100:-50~+50)
n19:P-ENV SUSTAIN LEVEL (0~100:-50~+50)
n20:END LEVEL (0~100:-50~+50)
n21:P-LFO RATE (0~100)
n22:P-LFO DEPTH (0~100)
n23:P-LFO MOD SENS (0~100)
n24:TVF CUTOFF FREQ (0~100)
n25:TVF RESONANCE (0~30)
n26:TVF KEYFOLLOW (0~14:-1,-1/2,-1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2)
n27:TVF BIAS POINT/DIR (0~127)
n28:TVF BIAS LEVEL (0~14:-7~+7)
n29:TVF ENV DEPTH (0~100)
n30:TVF ENV VELO SENS (0~100)
n31:TVF ENV DEPTH KEYF (0~4)
n32:TVF ENV TIME KEYF (0~4)
n33:TVF ENV TIME 1 (0~100)
n34:TVF ENV TIME 2 (0~100)
n35:TVF ENV TIME 3 (0~100)
n36:TVF ENV TIME 4 (0~100)
n37:TVF ENV TIME 5 (0~100)
n38:TVF ENV LEVEL 1 (0~100)
n39:TVF ENV LEVEL 2 (0~100)
n40:TVF ENV LEVEL 3 (0~100)
n41:TVF ENV SUSTAIN LEVEL (0~100)
n42:TVA LEVEL (0~100)
n43:TVA VELO SENS (0~100:-50~+50
n44:TVA BIAS POINT 1 (0~127)
n45:TVA BIAS LEVEL 1 (0~12:-12~0)
n46:TVA BIAS POINT 2 (0~127)
n47:TVA BIAS LEVEL 2 (0~12:-12~0)
n48:TVA ENV TIME KEYF (0~4)
n49:TVA ENV TIME V_FOLLOW (0~4)
n50:TVA ENV TIME 1 (0~100)
n51:TVA ENV TIME 2 (0~100)
n52:TVA ENV TIME 3 (0~100)
n53:TVA ENV TIME 4 (0~100)
n54:TVA ENV TIME 5 (0~100)
n55:TVA ENV LEVEL 1 (0~100)
n56:TVA ENV LEVEL 2 (0~100)
n57:TVA ENV LEVEL 3 (0~100)
n58:TVA ENV SUSTAIN LEVEL (0~100)
(MT32マニュアルp34, CM64マニュアルp29参照)
例
[MT32_PARTIAL 1,1,$10 {64,50,11,1,1,127,50,7}]
----------------------------------------
[MIDI] MT32パッチの設定
[MT32_PATCH n,id {n1,n2,…,n7}]
・n:1-128
・id:0-127
・n1~n7:0-127
MT32のパッチを設定する。
nは設定対象パッチナンバーで、設定範囲は1≦n≦128。
idはMT32のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n7)は7個まで任意の設定個数設定可能。同機能の共通コマンド
MT32_PATCHとは異なり複数行にパラメータを分けて書くことはできない。
n1:TIMBRE GROUP (0~3:a,b,i,r)
n2:TIMBRE NUMBER (0~63)
n3:KEY SHIFT (0~48:-24~+24)
n4:FINE TUNE (0~100:-50~+50)
n5:BENDER RANGE (0~24)
n6:ASSIGN MODE (0~3:POLY1~4)
n7:REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35, CM64マニュアルp30参照)
例
[MT32_PATCH 1,$10 {0,0,0,50,12,1,1}]
----------------------------------------
[MIDI] MT32コンソール文字列表示
[MT32_PRINT id str]
・id:0-127
・str:文字列
MT32のコンソールに文字列を表示する。
idはMT32のデバイスIDで省略可能、省略時は$10。
strは文字列で、"~"でくくり20文字以内で指定する。
(MEASURE3 zm_mt32_print()参照)
例
[MT32_PRINT $10 "HELLO!"]
----------------------------------------
■U220/U20専用命令
----------------------------------------
[MIDI] U220セットアップパラメータの設定
[U220_SETUP id {n1,n2,…,n7}]
・id:0-127
・n1~n7:0-127
U220のセットアップパラメータを設定する。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n7)は必ず7個指定しなければならない。また同機能の共通コマンド
U220_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:Chorus SW (0~1:OFF/ON)
n2:Reverb SW (0~1:OFF/ON)
n3:Rx Cntrl Channel (1~17:1~16,OFF)
n4:Patch Change (0~5:MAP1~MAP4,Dir,OFF)
n5:Timbre Change (0~5:MAP1~MAP4,Dir,OFF)
n6:Rhythm Change (0~5:MAP1~MAP4,Dir,OFF)
n7:R.Inst Assign (0~5:MAP1~MAP4,Dir,OFF)
(U220マニュアルp46,p146,p148)
例
[U220_SETUP $10 {1,1,1,5,4,4,4}]
----------------------------------------
[MIDI] U220パートパラメータの設定
[U220_PART_SETUP pt,id {n1,n2,…,n13}]
・pt:1-6
・id:0-127
・n1~n13:0-127
U220のテンポラリ・パッチのパートパラメータを設定する。
ptはパートナンバーを表し、設定範囲は1≦pt≦6。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n13)は必ず13個指定しなければならない。また同機能の共通コマンド
U220_PART_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:Timbre Number (1~128)
n2:Voice Reserve (0~30)
n3:Receive Channel (1~17:1~16,OFF)
n4:Key Range Low (0~127:C-1~G9)
n5:Key Range High (0~127:C-1~G9)
n6:Velo Level (0~1:Above/Below)
n7:Velo Threshold (0~127)
n8:Output Assign (0~4:Dry,Rev,Cho,Dir1,Dir2)
n9:Level (0~127)
n10:Pan (0~15:L7~M~R7)
n11:Rx Volume (0~1:OFF/ON)
n12:Rx Pan (0~1:OFF/ON)
n13:Rx Hold (0~1:OFF/ON)
(U220マニュアルp58,p149参照)
例
[U220_PART_SETUP 1,$10 {1,3,1,0,127,1,127,0,0,8,0,0,0}]
----------------------------------------
[MIDI] U220コモンパラメータの設定
[U220_COMMON id {n1,n2,…,n18}]
・id:0-127
・n1~n18:0-127
U220のテンポラリ・パッチのコモンパラメータを設定する。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n18)は必ず18個指定しなければならない。また同機能の共通コマンド
U220_COMMONとは異なり複数行にパラメータを分けて書くことはできない。
n1:Chorus Type (0~4:Chorus1,Chorus2,FB-Chorus,
Flanger,Short Delay)
n2:Chorus Out Mode (0~1:Pre Rev,Post Rev)
n3:Chorus Level (0~31)
n4:Chorus Delay (0~31)
n5:Chorus Rate (0~31)
n6:Chorus Depth (0~31)
n7:Chorus Feedback (1~63:-31~0~+31)
n8:Reverb Type (0~7:Room1~3,Hall1~2,Gate
Delay,CrossDelay)
n9:Reverb Time (0~31)
n10:Reverb Level (0~31)
n11:Reverb Delay Feedback (0~31)
n12:Reverb Pre Delay Feedback (0~31)
n13:Param1 # (0~63:0~5,7~31,64~95,OFF)
n14:Param1 Param (0:Timbre Level,1:Env Attack
2:Env Decay,3:Env Sustain
4:Env Release,5:A.Bend Depth
6:A.Bend Rate,7:Detune Depth
8:Vib Rate,9:Vib Wave Form
10:Vib Depth,11:Vib Delay
12:Vib Rise Time,13:Vib Mod Depth
14:Chorus Level,15:Chorus Rate
16:Chorus Feedback,17:Reverb Level
18:Delay Feedback)
n15:Param2 # (Same as Param1 #)
n16:Param2 Param (Same as Param1 Param)
n17:Param3 # (Same as Param1 #)
n18:Param3 Param (Same as Param1 Param)
(U220マニュアルp54,p149参照)
例
[U220_COMMON $10 {0,1,20,20,20,20,32,0,2,2,2,2,63,0,63,0,63,0}]
----------------------------------------
[MIDI] U220音色パラメータ設定
[U220_TIMBRE n,id {str,n1,n2,…,n26}]
・n:1-128
・id:0-127
・str:文字列
・n1~n26:0-127
U220に音色パラメータを設定する。
nは登録先音色番号を表し、設定範囲は1≦n≦128。
idはU220のデバイスIDで省略可能、省略時は$10。
strは音色名を表す文字列で、"~"で括り、12文字以内で指定する。
パラメータ(n1~n26)は必ず26個指定しなければならない。また同機能の共通コマンド
U220_TIMBREとは異なり複数行にパラメータを分けて書くことはできない。
n1:Tone Media (0~31:I,1~31)
n2:Tone Number (1~128)
n3:Timbre Level (0~127)
n4:Velocity Sens (1~15:-7~+7)
n5:Channel Press Sens (1~15:-7~+7)
n6:Env Attack Rate (1~15:-7~+7)
n7:Env Decay Rate (1~15:-7~+7)
n8:Env Sustain Level (1~15:-7~+7)
n9:Env Release Rate (1~15:-7~+7)
n10:Pitch Shift Coarse (8~56:-24~+24)
n11:Pitch Shift Fine (14~114:-50~+50)
n12:Bend Range Lower (0~15:-36,-24,-12~0)
n13:Bend Range Upper (0~12)
n14:Channel After Sens (0~27:-36,-24,-12~+12)
n15:Poly After Sens (0~27:-36,-24,-12~+12)
n16:Auto Bend Depth (0~27:-36,-24,-12~+12)
n17:Auto Bend Rate (0~15)
n18:Detune Depth (0~15)
n19:Rate (0~63)
n20:Waveform (0~8)
n21:Depth (0~15)
n22:Delay (0~15)
n23:Rise Time (0~15)
n24:Modulation Depth (0~15)
n25:Ch After Sens (0~15)
n26:Poly After Sens (0~15)
(U220マニュアルp72,p149参照)
例
[U220_TIMBRE 1,$10 {"SYNTHE-2",0,1,127,8,8,8,8,8,8,32,64,2,2,
14,14,14,0,0,0,0,0,0,0,0,0,0}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
----------------------------------------
[MIDI] U220ドラム・パラメータの設定
[U220_DRUM_SETUP id {n1,n2,…,n7}]
・id:0-127
・n1~n7:0-127
U220のテンポラリ・パッチのドラム・パラメータを設定する。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n7)は必ず7個指定しなければならない。また同機能の共通コマンド
U220_DRUM_SETUPとは異なり複数行にパラメータを分けて書くことはできない。
n1:Rhythm Setup # (0~3:1~4)
n2:Voice Reserve (0~30)
n3:Receive Channel (1~17:1~16,OFF)
n4:Level (0~127)
n5:Level Boost Sw (0~1:OFF/ON)
n6:Rx Volume (0~1:OFF/ON)
n7:Rx Hold (0~1:OFF/ON)
(U220マニュアルp63,p149参照)
例
[U220_DRUM_SETUP $10 {0,5,10,127,0,1,0}]
----------------------------------------
[MIDI] U220ドラムセット・ノートパラメータの設定
[U220_DRUM_INST n,id {n1,n2,…,n20}]
・n:35-99
・id:0-127
・n1~n20:0-127
U220のテンポラリ・ドラムセットの各ノートにおけるパラメータを設定する。
nは設定先のノート番号で、設定範囲は35≦n≦99。
idはU220のデバイスIDで省略可能、省略時は$10。
パラメータ(n1~n20)は20個以内任意の個数設定可能。同機能の共通コマンド
U220_DRUM_INSTとは異なり複数行にパラメータを分けて書くことはできない。
n1:Tone Media (0~31:I,1~31)
n2:Tone Number (1~128)
n3:Source Key (0~127:C-1~G9)
n4:Mute Inst (34~98:OFF,B1~D7)
n5:Inst Level (0~31)
n6:Velocity Sens (0~15)
n7:Env Mode (0~1:Sustain,No Sustain)
n8:Env Attack Rate (1~15:-7~+7)
n9:Env Decay Rate (1~15:-7~+7)
n10:Env Release Rate (1~15:-7~+7)
n11:Pitch Shift Coarse (0~27:-36,-24,-12~+12)
n12:Pitch Shift Fine (14~114:-50~+50)
n13:Channel After Sens (0~27:-36,-24,-12~+12)
n14:Poly After Sens (0~27:-36,-24,-12~+12)
n15:Random (0~15)
n16:Auto Bend Depth (0~27:-36,-24,-12~+12)
n17:Auto Bend Rate (0~15)
n18:Detune Depth (0~15)
n19:Output Assign (0~3:Dry,Rev,Cho,Dir1)
n20:Pan (0~15:L7~M~R7)
(U220マニュアルp72,p149参照)
例
[U220_DRUM_INST 42,$10 {0,1,24,34,31,15,1,8,8,8,14,64,14,14,
0,14,0,0,0,8}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
----------------------------------------
[MIDI] U220ディスプレイ文字列表示
[U220_PRINT id str]
・id:0-127
・str:文字列
U220のディスプレイに文字列を表示する。具体的にはU220の
テンポラリ・パッチの名前を設定することで行う。
idはU220のデバイスIDで省略可能、省略時は$10。
strは表示文字列を表し、"~"で括り、12文字以内で指定する。
例
[U220_PRINT $10 "APPLE TREE"]
----------------------------------------
■M1/M1EX/M1R/M1REX専用命令
----------------------------------------
[MIDI] M1受信チャンネル設定
[M1_SETUP {ch1,ch2,…,ch8}]
[M1_MIDI_CH {ch1,ch2,…,ch8}]
・ch1~ch8:1-16
M1のSEQ0の各パートの受信チャンネルを設定する。
パラメータ(ch1~ch8)は必ず8個指定しなければならない。設定範囲は1≦chi≦17で
1~16はMIDIチャンネルの1~16を表し、17は「そのパートは受信しない」を意味する
設定となる。
n1:パート1の受信MIDIチャンネル
n2:パート1の受信MIDIチャンネル
:
:
n8:パート1の受信MIDIチャンネル
例
[M1_SETUP {1,2,3,4,5,6,17,10}]
----------------------------------------
[MIDI] M1パートパラメータの設定
[M1_PART_SETUP {n1,n2,…,n40}]
・n1~n40:
M1のSEQ0の各パートのパラメータを設定する。
パラメータ(n1~n40)は必ず40個(5×8パート分)設定しなければならない。
また同機能の共通コマンドM1_PART_SETUPとは異なり複数行にパラメータを分けて
書くことはできない。
PART 1
n1:PROGRAM NUMBER (0~199:I00~C99)
n2:OUTPUT LEVEL (0~99)
n3:KEY TRANSPOSE ($F4~$0C:-12~12)
n4:DETUNE ($CE~$32:-50~+50)
n5:PAN (0~13:10:0~0:10,C,C+D,D)
PART 2~8(n6~n40)以下同様の書式構成
(M1マニュアルp126参照)
例
[M1_PART_SETUP {0,99,0,0,5,0,99,0,0,5,0,99,0,0,5,0,99,0,0,5
0,99,0,0,5,0,99,0,0,5,0,99,0,0,5,0,99,0,0,5}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
----------------------------------------
[MIDI] M1エフェクトパラメータの設定
[M1_EFFECT_SETUP {n1,n2,…,n25}]
・n1~n25:
M1のSEQ0のエフェクトパラメータの設定を行う。
パラメータ(n1~n25)は必ず25個指定しなければならない。
同機能の共通コマンドM1_EFFECT_SETUPとは異なり複数行にパラメータを
分けて書くことはできない。
n1:Effect 1 Pattern No. (0~33:1~32,Thru)
n2:Effect 2 Pattern No. (0~33:1~32,Thru)
n3:Effect 1 L-Ch E.Balnc (0~100)
n4:Effect 1 R-Ch E.Balnc (0~100)
n5:Effect 2 L-Ch E.Balnc (0~100)
n6:Effect 2 R-Ch E.Balnc (0~100)
n7:Output 3 Pan (0~101:OFF,100:0~0:100)
n8:Output 4 Pan (0~101:OFF,100:0~0:100)
n9:Effect I/O (BIT0:Effect 1 L-Ch 0=OFF/1=ON
BIT1:Effect 1 R-Ch 0=OFF/1=ON
BIT2:Effect 2 L-Ch 0=OFF/1=ON
BIT3:Effect 2 R-Ch 0=OFF/1=ON)
BIT4:Effect 2 0=PARALLEL/1=SERIAL)
n10~n17:Effect 1 Parameter
n18~n25:Effect 2 Parameter
Structure of Effect Parameter
(ofs=10 or 18)
1~3:Hall (4,5:Room,6:Live Stage)
n(ofs+0):Reverb Time (0~97:0.2~9.9),(0~48:0.2~5.0)
n(ofs+1):Dummy 0
n(ofs+2):High Damp (0~99)
n(ofs+3):Pre Delay (0~200)
n(ofs+4):E/R Level (0~99)
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
7~9:Early Reflection 1,2,3
n(ofs+0):E/R Time (0~70:100~800)
n(ofs+1):Pre Delay (0~200)
n(ofs+2):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
10:Stereo Delayt,11:Cross Delay
n(ofs+0):Delay Time L (L) (0~500)
n(ofs+1):Delay Time L (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):Delay Time R (L) (0~500)
n(ofs+5):Delay Time R (H)
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
12~13:Stereo Chorus 1~2 (14~15:Flanger)
n(ofs+0):Depth (0~99)
n(ofs+1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
n(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+3):Feedback ($9D~$63:-99~+99)
n(ofs+4):Delay Time (0~200),(0~50)
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
16~17:Phase Shifter 1~2
n(ofs+0):Depth (0~99)
n(ofs+1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
n(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+3):Feedback ($9D~$63:-99~+99)
n(ofs+4):Manual (0~99)
n(ofs+5):Dummy 0
n(ofs+6):Dummy 0
n(ofs+7):Dummy 0
18~19:Stereo Toremolo 1~2
n(ofs+0):Depth (0~99)
n(ofs+1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
n(ofs+2):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+3):Shape ($9D~$63:-99~+99)
n(ofs+4):Dummy 0
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
20:Equalizer
n(ofs+0):Dummy 0
: :
n(ofs+3):Dummy 0
n(ofs+4):Low fc (0~2:0.25k,0.50k,1.00k)
n(ofs+5):High fc (0~2:1k,2k,4k)
n(ofs+6):High Gain ($F4~$0C:-12~+12)
n(ofs+7):Low Gain ($F4~$0C:-12~+12)
21:Overdrive
n(ofs+0):Dummy 0
n(ofs+1):Dummy 0
n(ofs+2):Drive (0~99)
n(ofs+3):Level (0~99)
n(ofs+4):Dummy 0
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
22:Distortion
n(ofs+0):Dummy 0
n(ofs+1):Dummy 0
n(ofs+2):Distortion (0~99)
n(ofs+3):Level (0~99)
n(ofs+4):Dummy 0
n(ofs+5):Dummy 0
n(ofs+6):Dummy 0
n(ofs+7):EQ Low Gain ($F4~$0C:-12~+12)
23:Exciter
n(ofs+0):Blend ($9D~$63:-99~+99)
n(ofs+1):Emphatic Point (0~9:1~10)
n(ofs+2):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
24:Synphonic Ensamble
n(ofs+0):Depth (0~99)
n(ofs+1):Dummy 0
: :
n(ofs+5):Dummy 0
n(ofs+6):EQ High ($F4~$0C:-12~+12)
n(ofs+7):EQ Low ($F4~$0C:-12~+12)
25:Roteffect Speaker
n(ofs+0):Depth (0~99)
n(ofs+1):Dummy 0
n(ofs+2):Speed Rate ($F6~$0A:-10~+10)
n(ofs+3):Dummy 0
: :
n(ofs+7):Dummy 0
26:Delay/Hall
n(ofs+0):Delay Time (L) (0~500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):Reverb Time (0~97:0.2~9.9)
n(ofs+5):Dummy 0
n(ofs+6):High Damp (0~99)
n(ofs+7):Pre Delay (0~150)
27:Delay/Room
n(ofs+0):Delay Time (L) (0~500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):Reverb Time (0~97:0.2~9.9)
n(ofs+5):Dummy 0
n(ofs+6):High Damp (0~99)
n(ofs+7):Pre Delay (0~150)
28:Delay/Early Reflection
n(ofs+0):Delay Time (L) (0~500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):E/R Time (0~30:100~400)
n(ofs+5):Pre Delay (0~150)
n(ofs+6):Dummy 0
n(ofs+7):Dummy 0
29:Delay/Chorus
n(ofs+0):Delay Time L (L) (0~500)
n(ofs+1):Delay Time L (H)
n(ofs+2):Feedback L ($9D~$63:-99~99)
n(ofs+3):High Damp L (0~99)
n(ofs+4):Delay Time R (L) (0~500)
n(ofs+5):Delay Time R (H)
n(ofs+6):Feedback R ($9D~$63:-99~99)
n(ofs+7):High Damp R (0~99)
30:Delay/Chorus (31:Delay Flanger)
n(ofs+0):Delay Time (L) (0~500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):Depth (0~99)
n(ofs+5):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
n(ofs+6):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
n(ofs+7):Feedback ($9D~$63:-99~99)
32:Delay/Phaser
n(ofs+0):Delay Time (L) (0~500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):Depth (0~99)
n(ofs+5):Speed (0~99:0.03~3.00 0.03step)
n(ofs+6):Feedback ($9D~$63:-99~99)
n(ofs+7):Dummy 0
33:Delay/Tremolo
n(ofs+0):Delay Time (L) (0~500)
n(ofs+1):Delay Time (H)
n(ofs+2):Feedback ($9D~$63:-99~99)
n(ofs+3):High Damp (0~99)
n(ofs+4):Depth (0~99)
n(ofs+5):Speed (0~99:0.03~3.00 0.03step)
n(ofs+6):Dummy 0
n(ofs+7):Shape ($9D~$63:-99~99)
(M1マニュアルp127参照)
例
[M1_EFFECT_SETUP {1,3,50,50,50,50,50,50,%11111,
50,0,50,100,50,0,0,0,50,0,50,100,50,0,0,0}]
(本来はコマンドライン途中で改行することはできないがレイアウトの都合上
改行している)
----------------------------------------
[MIDI] M1ディスプレイ文字列表示
[M1_PRINT str]
・str:文字列
M1のディスプレイに文字列を表示する。具体的にはM1のSEQ0のソングネーム
の設定をすることで行う。
strは表示文字列で、"~"で括り、10文字以内で指定する。
例
[M1_PRINT "MY WAY"]
----------------------------------------
[MIDI] M1へ設定を送信する
[SEND_TO_M1 id]
・id:0-127
[M1_SETUP]
[M1_PART_SEUP]
[M1_EFFECT_SETUP]
[M1_PRINT]
で設定したパラメータ群をM1へ送信する。
idはM1のデバイスIDで省略可能、省略時は$30。
なお、M1のデバイスIDは$30+グローバルチャンネル(0~$f)で求められる。
(グローバルチャンネルとはGLOBALモードのF5-1で設定出来る)
必ず
[M1_SETUP]
[M1_PART_SEUP]
[M1_EFFECT_SETUP]
[M1_PRINT]
を設定してからこの命令を実行すること。[M1_EFFECT_SETUP]'のみ省略が可能。
省略時はZMUSICが持つデフォルト設定がM1へ送信され設定されることになる。
[M1_SETUP]
[M1_PART_SEUP]
[M1_EFFECT_SETUP]
[M1_PRINT]
の間にM1関係以外のコマンドがあると正常なデータが送信されないので注意
すること。
例
[SEND_TO_M1 $30]
----------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Ver.2とVer.3でのMMLの違い ┃
┃ ┃
┃ ZMUSIC Ver.2.0以前とZMUSIC Ver.3.0以降とでは機能拡張にともない、以下の ┃
┃ ┃
┃2点に置いて動作が微妙に異なります。 ┃
┃ ┃
┃1.波形メモリ ┃
┃ 振幅を与えることが出来るようになった関係で、波形メモリを使用した曲では ┃
┃ 演奏した感じが異なる場合がある。 ┃
┃ ┃
┃2.絶対音長1 ┃
┃ 絶対音長1がV2以前ではOPMDRV.Xとの互換を保つために強制的に「タイ/スラー」 ┃
┃ 指定としていたが汎用性を考えこれを取り止めた。 ┃
┃ ┃
┃ Ver.2.0の演奏データであってもほとんどのものはそのまま演奏することが ┃
┃ ┃
┃出来ます。しかし、微妙に演奏のニュアンスが異なっていた場合は、 ┃
┃ ┃
┃ZMSC3.X に'-2'オプションを付けて常駐し直してから再び演奏させてみてください。┃
┃ ┃
┃'-2'オプションはZMSC3.XをVer2.0相当の動作をさせるスイッチです。当然ながら ┃
┃ ┃
┃'-2'オプションを設定してしまうと今度は、Ver3.0以降用の演奏データが正常に演奏┃
┃ ┃
┃されなくなってしまいます。 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛